From 75ad14f573e5cd699272145ea7c34977b4e3f3e5 Mon Sep 17 00:00:00 2001 From: Ozzie Gooen Date: Sat, 29 Jan 2022 18:56:44 -0500 Subject: [PATCH] Simple JS connection --- __tests__/JS__Test.js | 12 +++ bsconfig.json | 6 +- package.json | 22 ++-- src/GuesstimatorDist.re | 21 ---- src/distPlus/ProgramEvaluator.gen.js | 12 +++ src/distPlus/ProgramEvaluator.gen.tsx | 30 ------ src/distPlus/distribution/DistPlusTime.res | 25 ----- src/distPlus/distribution/DistTypes.res | 3 - src/distPlus/distribution/TimeTypes.res | 83 -------------- .../expressionTree/ExpressionTreeEvaluator.re | 1 - src/distPlus/expressionTree/MathJsParser.re | 1 - src/distPlus/utility/E.res | 12 --- src/js/index.js | 3 + yarn.lock | 101 +----------------- 14 files changed, 40 insertions(+), 292 deletions(-) create mode 100644 __tests__/JS__Test.js delete mode 100644 src/GuesstimatorDist.re create mode 100644 src/distPlus/ProgramEvaluator.gen.js delete mode 100644 src/distPlus/ProgramEvaluator.gen.tsx delete mode 100644 src/distPlus/distribution/DistPlusTime.res delete mode 100644 src/distPlus/distribution/TimeTypes.res create mode 100644 src/js/index.js diff --git a/__tests__/JS__Test.js b/__tests__/JS__Test.js new file mode 100644 index 00000000..4410a654 --- /dev/null +++ b/__tests__/JS__Test.js @@ -0,0 +1,12 @@ +var js = require("../src/js/index.js"); + +describe("A simple result", () => { + test("mean(normal(5,2))", () => { + expect(js.eval("mean(normal(5,2))")).toEqual({ tag: 'Ok', value: { hd: { NAME: 'Float', VAL: 5 }, tl: 0 } }); + }); + test("10+10", () => { + let foo = js.eval("normal(5,2)"); + console.log(foo.value.hd.VAL) + expect(1).toEqual(1); + }); +}); \ No newline at end of file diff --git a/bsconfig.json b/bsconfig.json index 9b46c6cd..58de880a 100644 --- a/bsconfig.json +++ b/bsconfig.json @@ -28,11 +28,11 @@ "bs-dependencies": [ "@glennsl/bs-jest", "@glennsl/bs-json", - "rationale", - "bs-moment" + "rationale" ], "gentypeconfig": { - "language": "typescript", + "language": "untyped", + "module": "commonjs", "shims": {}, "debug": { "all": false, diff --git a/package.json b/package.json index d3a0b183..14a55603 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "estiband", + "name": "squiggle-experimental", "version": "0.1.0", "homepage": "https://foretold-app.github.io/estiband/", "scripts": { @@ -16,6 +16,7 @@ "test": "jest", "test:ci": "yarn jest", "watch:test": "jest --watchAll", + "watch:testjs": "jest --watchAll", "watch:s": "yarn jest -- Converter_test --watch" }, "keywords": [ @@ -23,34 +24,29 @@ "ReasonReact", "reason-react" ], - "author": "", + "author": "Quantified Uncertainty Research Institute", "license": "MIT", "dependencies": { "@glennsl/bs-json": "^5.0.2", "@rescriptbr/reform": "^11.0.1", - "ace-builds": "^1.4.12", - "autoprefixer": "9.8.8", "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2", - "binary-search-tree": "0.2.6", - "bs-moment": "0.6.0", - "jest": "^25.5.1", - "jstat": "1.9.2", "lodash": "4.17.15", "mathjs": "5.10.3", - "moduleserve": "0.9.1", - "moment": "2.24.0", "pdfast": "^0.2.0", - "rationale": "0.2.0", - "rescript": "^9.1.4" + "rationale": "0.2.0" }, "devDependencies": { "@glennsl/bs-jest": "^0.5.1", "bs-platform": "9.0.2", "docsify": "^4.12.2", "gentype": "^4.3.0", + "jest": "^25.5.1", + "jstat": "1.9.2", + "moduleserve": "0.9.1", "parcel-bundler": "1.12.4", "parcel-plugin-bundle-visualiser": "^1.2.0", - "parcel-plugin-less-js-enabled": "1.0.2" + "parcel-plugin-less-js-enabled": "1.0.2", + "rescript": "^9.1.4" }, "alias": { "react": "./node_modules/react", diff --git a/src/GuesstimatorDist.re b/src/GuesstimatorDist.re deleted file mode 100644 index eb843076..00000000 --- a/src/GuesstimatorDist.re +++ /dev/null @@ -1,21 +0,0 @@ -let normal = (mean: float, std: float) => - Js.Float.( - { - let nMean = toPrecisionWithPrecision(mean, ~digits=4); - let nStd = toPrecisionWithPrecision(std, ~digits=2); - {j|normal($(nMean), $(nStd))|j}; - } - ); - -let logNormal = (mean: float, std: float) => { - Js.Float.( - { - let nMean = toPrecisionWithPrecision(mean, ~digits=4); - let nStd = toPrecisionWithPrecision(std, ~digits=2); - {j|lognormal({mean: $(nMean), stdev: $(nStd)})|j}; - } - ); -}; - -let divide = (str1: string, str2: string) => {j|$(str1)/$(str2)|j}; -let min = (str1: string, str2: string) => {j|min($(str1),$(str2))|j}; \ No newline at end of file diff --git a/src/distPlus/ProgramEvaluator.gen.js b/src/distPlus/ProgramEvaluator.gen.js new file mode 100644 index 00000000..c1257b5e --- /dev/null +++ b/src/distPlus/ProgramEvaluator.gen.js @@ -0,0 +1,12 @@ +/* Untyped file generated from ProgramEvaluator.res by genType. */ +/* eslint-disable */ + +const ProgramEvaluatorBS = require('./ProgramEvaluator.bs'); + +const runAll = function (Arg1) { + const result = ProgramEvaluatorBS.runAll(Arg1); + return result.TAG===0 + ? {tag:"Ok", value:result._0} + : {tag:"Error", value:result._0} +};; +exports.runAll = runAll diff --git a/src/distPlus/ProgramEvaluator.gen.tsx b/src/distPlus/ProgramEvaluator.gen.tsx deleted file mode 100644 index 51554a2f..00000000 --- a/src/distPlus/ProgramEvaluator.gen.tsx +++ /dev/null @@ -1,30 +0,0 @@ -/* TypeScript file generated from ProgramEvaluator.res by genType. */ -/* eslint-disable import/first */ - - -// @ts-ignore: Implicit any on import -import * as ProgramEvaluatorBS__Es6Import from './ProgramEvaluator.bs'; -const ProgramEvaluatorBS: any = ProgramEvaluatorBS__Es6Import; - -import type {ExpressionTree_environment as ExpressionTypes_ExpressionTree_environment} from '../../src/distPlus/expressionTree/ExpressionTypes.gen'; - -import type {ExpressionTree_node as ExpressionTypes_ExpressionTree_node} from '../../src/distPlus/expressionTree/ExpressionTypes.gen'; - -import type {list} from './ReasonPervasives.gen'; - -import type {t as DistPlus_t} from '../../src/distPlus/distribution/DistPlus.gen'; - -// tslint:disable-next-line:interface-over-type-literal -export type export = - { NAME: "DistPlus"; VAL: DistPlus_t } - | { NAME: "Float"; VAL: number } - | { NAME: "Function"; VAL: [[string[], ExpressionTypes_ExpressionTree_node], ExpressionTypes_ExpressionTree_environment] }; - -export const runAll: (squiggleString:string) => - { tag: "Ok"; value: list } - | { tag: "Error"; value: string } = function (Arg1: any) { - const result = ProgramEvaluatorBS.runAll(Arg1); - return result.TAG===0 - ? {tag:"Ok", value:result._0} - : {tag:"Error", value:result._0} -}; diff --git a/src/distPlus/distribution/DistPlusTime.res b/src/distPlus/distribution/DistPlusTime.res deleted file mode 100644 index b0df8183..00000000 --- a/src/distPlus/distribution/DistPlusTime.res +++ /dev/null @@ -1,25 +0,0 @@ -open DistTypes - -type t = DistTypes.distPlus - -let unitToJson = ({unit}: t) => unit |> DistTypes.DistributionUnit.toJson - -let timeVector = ({unit}: t) => - switch unit { - | TimeDistribution(timeVector) => Some(timeVector) - | UnspecifiedDistribution => None - } - -let timeInVectorToX = (f: TimeTypes.timeInVector, t: t) => { - let timeVector = t |> timeVector - timeVector |> E.O.fmap(TimeTypes.RelativeTimePoint.toXValue(_, f)) -} - -let xToY = (f: TimeTypes.timeInVector, t: t) => - timeInVectorToX(f, t) |> E.O.fmap(DistPlus.T.xToY(_, t)) - -module Integral = { - include DistPlus.T.Integral - let xToY = (f: TimeTypes.timeInVector, t: t) => - timeInVectorToX(f, t) |> E.O.fmap(x => DistPlus.T.Integral.xToY(x, t)) -} diff --git a/src/distPlus/distribution/DistTypes.res b/src/distPlus/distribution/DistTypes.res index 7c6e36a6..ebce1fe3 100644 --- a/src/distPlus/distribution/DistTypes.res +++ b/src/distPlus/distribution/DistTypes.res @@ -72,7 +72,6 @@ type generationSource = type distributionUnit = | UnspecifiedDistribution - | TimeDistribution(TimeTypes.timeVector) type distPlus = { shape: shape, @@ -85,8 +84,6 @@ type distPlus = { module DistributionUnit = { let toJson = (distributionUnit: distributionUnit) => switch distributionUnit { - | TimeDistribution({zero, unit}) => - Js.Null.fromOption(Some({"zero": zero, "unit": unit |> TimeTypes.TimeUnit.toString})) | _ => Js.Null.fromOption(None) } } diff --git a/src/distPlus/distribution/TimeTypes.res b/src/distPlus/distribution/TimeTypes.res deleted file mode 100644 index 5f1e582b..00000000 --- a/src/distPlus/distribution/TimeTypes.res +++ /dev/null @@ -1,83 +0,0 @@ -type timeUnit = [ - | #days - | #hours - | #milliseconds - | #minutes - | #months - | #quarters - | #seconds - | #weeks - | #years -] - -type timeVector = { - zero: MomentRe.Moment.t, - unit: timeUnit, -} - -type timePoint = { - timeVector: timeVector, - value: float, -} - -module TimeUnit = { - let toString = (timeUnit: timeUnit) => - switch timeUnit { - | #days => "days" - | #hours => "hours" - | #milliseconds => "milliseconds" - | #minutes => "minutes" - | #months => "months" - | #quarters => "quarters" - | #seconds => "seconds" - | #weeks => "weeks" - | #years => "years" - } - - let ofString = (timeUnit: string) => - switch timeUnit { - | "days" => #days - | "hours" => #hours - | "milliseconds" => #milliseconds - | "minutes" => #minutes - | "months" => #months - | "quarters" => #quarters - | "seconds" => #seconds - | "weeks" => #weeks - | "years" => #years - | _ => Js.Exn.raiseError("TimeUnit is unknown") - } -} - -module TimePoint = { - let fromTimeVector = (timeVector, value): timePoint => {timeVector: timeVector, value: value} - - let toMoment = (timePoint: timePoint) => - timePoint.timeVector.zero |> MomentRe.Moment.add( - ~duration=MomentRe.duration(timePoint.value, timePoint.timeVector.unit), - ) - - let fromMoment = (timeVector: timeVector, moment: MomentRe.Moment.t) => - MomentRe.diff(timeVector.zero, moment, timeVector.unit) -} - -type timeInVector = - | Time(MomentRe.Moment.t) - | XValue(float) - -module RelativeTimePoint = { - let toTime = (timeVector: timeVector, timeInVector: timeInVector) => - switch timeInVector { - | Time(r) => r - | XValue(r) => - timeVector.zero |> MomentRe.Moment.add(~duration=MomentRe.duration(r, timeVector.unit)) - } - - let _timeToX = (time, timeStart, timeUnit) => MomentRe.diff(time, timeStart, timeUnit) - - let toXValue = (timeVector: timeVector, timeInVector: timeInVector) => - switch timeInVector { - | Time(r) => _timeToX(r, timeVector.zero, timeVector.unit) - | XValue(r) => r - } -} diff --git a/src/distPlus/expressionTree/ExpressionTreeEvaluator.re b/src/distPlus/expressionTree/ExpressionTreeEvaluator.re index debdc1e1..608ea8fd 100644 --- a/src/distPlus/expressionTree/ExpressionTreeEvaluator.re +++ b/src/distPlus/expressionTree/ExpressionTreeEvaluator.re @@ -206,7 +206,6 @@ module Truncate = { module Normalize = { let rec operationToLeaf = (evaluationParams, t: node): result(node, string) => { - Js.log2("normalize", t); switch (t) { | `RenderedDist(s) => Ok(`RenderedDist(Shape.T.normalize(s))) | `SymbolicDist(_) => Ok(t) diff --git a/src/distPlus/expressionTree/MathJsParser.re b/src/distPlus/expressionTree/MathJsParser.re index a2f977d0..1d8322ef 100644 --- a/src/distPlus/expressionTree/MathJsParser.re +++ b/src/distPlus/expressionTree/MathJsParser.re @@ -344,7 +344,6 @@ let fromString2 = str => { }); let value = E.R.bind(mathJsParse, MathAdtToDistDst.run); - Js.log2(mathJsParse, value); value; }; diff --git a/src/distPlus/utility/E.res b/src/distPlus/utility/E.res index 18e6ec72..d17850fd 100644 --- a/src/distPlus/utility/E.res +++ b/src/distPlus/utility/E.res @@ -191,18 +191,6 @@ module J = { } } -module M = { - let format = MomentRe.Moment.format - let format_standard = "MMM DD, YYYY HH:mm" - let format_simple = "L" - /* TODO: Figure out better name */ - let goFormat_simple = MomentRe.Moment.format(format_simple) - let goFormat_standard = MomentRe.Moment.format(format_standard) - let toUtc = MomentRe.momentUtc - let toJSON = MomentRe.Moment.toJSON - let momentDefaultFormat = MomentRe.momentDefaultFormat -} - module JsDate = { let fromString = Js.Date.fromString let now = Js.Date.now diff --git a/src/js/index.js b/src/js/index.js new file mode 100644 index 00000000..5c5c1bce --- /dev/null +++ b/src/js/index.js @@ -0,0 +1,3 @@ +const ProgramEvaluator = require('../distPlus/ProgramEvaluator.gen.js'); + +exports.eval = ProgramEvaluator.runAll \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 22963a62..84d498cb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1202,11 +1202,6 @@ abab@^2.0.0: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a" integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg== -ace-builds@^1.4.12: - version "1.4.12" - resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.4.12.tgz#888efa386e36f4345f40b5233fcc4fe4c588fae7" - integrity sha512-G+chJctFPiiLGvs3+/Mly3apXTcfgE45dT5yp12BcWZ1kUs+gm0qd3/fv4gsz6fVag4mM0moHVpjHDIgph6Psg== - acorn-globals@^4.3.0, acorn-globals@^4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" @@ -1406,19 +1401,6 @@ 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@9.8.8: - version "9.8.8" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" - integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== - dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - picocolors "^0.2.1" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" - aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -1621,13 +1603,6 @@ binary-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== -binary-search-tree@0.2.6: - version "0.2.6" - resolved "https://registry.yarnpkg.com/binary-search-tree/-/binary-search-tree-0.2.6.tgz#c6d29194e286827fcffe079010e6bf77def10ce3" - integrity sha1-xtKRlOKGgn/P/geQEOa/d97xDOM= - dependencies: - underscore "~1.4.4" - bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" @@ -1772,22 +1747,6 @@ browserslist@^4.0.0, browserslist@^4.1.0, browserslist@^4.11.1, browserslist@^4. node-releases "^1.1.53" pkg-up "^2.0.0" -browserslist@^4.12.0: - version "4.19.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" - integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== - dependencies: - caniuse-lite "^1.0.30001286" - electron-to-chromium "^1.4.17" - escalade "^3.1.1" - node-releases "^2.0.1" - picocolors "^1.0.0" - -bs-moment@0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/bs-moment/-/bs-moment-0.6.0.tgz#b49c5580598ef277696494684fd274ea1f8b1019" - integrity sha512-AYtL5j6hXHwA+SZut4uhvlhDrabpqwjuXIa/0qfVpEjR45HGBruSZFxUcXwjtOGy9eoRc1FKjRM0n+X21oJb+w== - bs-platform@9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/bs-platform/-/bs-platform-9.0.2.tgz#a6eac70eb8924a322556dacaccbfbc9b2a0d3a37" @@ -1893,7 +1852,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001043, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001286: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001043: version "1.0.30001303" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz" integrity sha512-/Mqc1oESndUNszJP0kx0UaQU9kEv9nNtJ7Kn8AdA0mNnH8eR1cj0kG+NbNuC1Wq/b21eA8prhKRA3bbkjONegQ== @@ -2687,11 +2646,6 @@ electron-to-chromium@^1.3.413: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.425.tgz#96b7b5aa9115e42baf59be88d2432c9f406128c4" integrity sha512-JTEOWiqCY4snuKuQAaFy0z6LK2Gdb8Lojkd/csQwpNHgMUF8I6QRjGVKk44IH46dHQhUFKzr4o6zxZrtDBjc2Q== -electron-to-chromium@^1.4.17: - version "1.4.57" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.57.tgz#2b2766df76ac8dbc0a1d41249bc5684a31849892" - integrity sha512-FNC+P5K1n6pF+M0zIK+gFCoXcJhhzDViL3DRIGy2Fv5PohuSES1JHR7T+GlwxSxlzx4yYbsuzCZvHxcBSRCIOw== - elliptic@^6.0.0: version "6.5.2" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" @@ -2775,11 +2729,6 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -4722,11 +4671,6 @@ moduleserve@0.9.1: send "^0.17.1" serve-static "^1.14.1" -moment@2.24.0: - version "2.24.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" - integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== - ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -4839,11 +4783,6 @@ node-releases@^1.1.53: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== -node-releases@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" - integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== - normalize-html-whitespace@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/normalize-html-whitespace/-/normalize-html-whitespace-1.0.0.tgz#5e3c8e192f1b06c3b9eee4b7e7f28854c7601e34" @@ -4871,11 +4810,6 @@ normalize-path@^3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= - normalize-url@^3.0.0: version "3.3.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" @@ -4902,11 +4836,6 @@ nth-check@^1.0.2: dependencies: boolbase "~1.0.0" -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" @@ -5343,16 +5272,6 @@ physical-cpu-count@^2.0.0: resolved "https://registry.yarnpkg.com/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz#18de2f97e4bf7a9551ad7511942b5496f7aba660" integrity sha1-GN4vl+S/epVRrXURlCtUlverpmA= -picocolors@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" - integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - picomatch@^2.0.4, picomatch@^2.0.5: version "2.2.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" @@ -5700,11 +5619,6 @@ postcss-value-parser@^4.0.2: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== -postcss-value-parser@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - postcss@6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.1.tgz#000dbd1f8eef217aa368b9a212c5fc40b2a8f3f2" @@ -5732,14 +5646,6 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.11, postcss@^7.0.14, postcss@^7.0.1 source-map "^0.6.1" supports-color "^6.1.0" -postcss@^7.0.32: - version "7.0.39" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" - integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== - dependencies: - picocolors "^0.2.1" - source-map "^0.6.1" - posthtml-parser@^0.4.0, posthtml-parser@^0.4.1, posthtml-parser@^0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/posthtml-parser/-/posthtml-parser-0.4.2.tgz#a132bbdf0cd4bc199d34f322f5c1599385d7c6c1" @@ -7048,11 +6954,6 @@ uncss@^0.17.2: postcss-selector-parser "6.0.2" request "^2.88.0" -underscore@~1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604" - integrity sha1-YaajIBBiKvoHljvzJSA88SI51gQ= - unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"