From bce2647c921554613e09580c27fc38d3edde26dc Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Thu, 20 Jul 2023 21:04:22 +0300 Subject: [PATCH 01/34] Adds basic processor --- spago.dhall | 3 ++- src/PureScript/Backend/Optimizer/Convert.purs | 3 ++- .../Backend/Optimizer/Semantics.purs | 20 +++++++++++++------ 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/spago.dhall b/spago.dhall index 1a1a2f3c..c1e7253a 100644 --- a/spago.dhall +++ b/spago.dhall @@ -21,6 +21,7 @@ You can edit this file as you like. , "filterable" , "foldable-traversable" , "foreign-object" + , "free" , "integers" , "language-cst-parser" , "lazy" @@ -49,5 +50,5 @@ You can edit this file as you like. ] , packages = ./packages.dhall , sources = - [ "src/**/*.purs", "backend-es/src/**/*.purs", "backend-es/test/*.purs" ] + [ "src/**/*.purs", "external/**/*.purs", "backend-es/src/**/*.purs", "backend-es/test/*.purs" ] } diff --git a/src/PureScript/Backend/Optimizer/Convert.purs b/src/PureScript/Backend/Optimizer/Convert.purs index 71810d3a..2824220b 100644 --- a/src/PureScript/Backend/Optimizer/Convert.purs +++ b/src/PureScript/Backend/Optimizer/Convert.purs @@ -70,6 +70,7 @@ import Data.Traversable (class Foldable, Accum, foldr, for, mapAccumL, mapAccumR import Data.TraversableWithIndex (forWithIndex) import Data.Tuple (Tuple(..), fst, snd) import Partial.Unsafe (unsafeCrashWith, unsafePartial) +import Processors (processors) import PureScript.Backend.Optimizer.Analysis (BackendAnalysis) import PureScript.Backend.Optimizer.CoreFn (Ann(..), Bind(..), Binder(..), Binding(..), CaseAlternative(..), CaseGuard(..), Comment, ConstructorType(..), Expr(..), Guard(..), Ident(..), Literal(..), Meta(..), Module(..), ModuleName(..), ProperName, Qualified(..), ReExport, findProp, propKey, propValue, qualifiedModuleName, unQualified) import PureScript.Backend.Optimizer.Directives (DirectiveHeaderResult, parseDirectiveHeader) @@ -247,7 +248,7 @@ toTopLevelBackendBinding group env (Binding _ ident cfn) = do let qualifiedIdent = Qualified (Just env.currentModule) ident let backendExpr = toBackendExpr cfn env let enableTracing = Set.member qualifiedIdent env.traceIdents - let Tuple mbSteps optimizedExpr = optimize enableTracing (getCtx env) evalEnv qualifiedIdent env.rewriteLimit backendExpr + let Tuple mbSteps optimizedExpr = optimize enableTracing processors (getCtx env) evalEnv qualifiedIdent env.rewriteLimit backendExpr let Tuple impl expr' = toExternImpl env group optimizedExpr { accum: env { implementations = Map.insert qualifiedIdent impl env.implementations diff --git a/src/PureScript/Backend/Optimizer/Semantics.purs b/src/PureScript/Backend/Optimizer/Semantics.purs index a02a62b5..45ac8e28 100644 --- a/src/PureScript/Backend/Optimizer/Semantics.purs +++ b/src/PureScript/Backend/Optimizer/Semantics.purs @@ -3,6 +3,8 @@ module PureScript.Backend.Optimizer.Semantics where import Prelude import Control.Alternative (guard) +import Control.Comonad.Cofree (Cofree) +import Control.Comonad.Cofree as Cofree import Data.Array as Array import Data.Array.NonEmpty (NonEmptyArray) import Data.Array.NonEmpty as NonEmptyArray @@ -1539,17 +1541,23 @@ newtype NeutralExpr = NeutralExpr (BackendSyntax NeutralExpr) derive instance Newtype NeutralExpr _ -optimize :: Boolean -> Ctx -> Env -> Qualified Ident -> Int -> BackendExpr -> Tuple (Array BackendExpr) BackendExpr -optimize traceSteps ctx env (Qualified mn (Ident id)) initN originalExpr = - go (if traceSteps then pure originalExpr else List.Nil) initN originalExpr +type ProcessorInput = { qual :: Qualified Ident, n :: Int, env :: Env, expr :: BackendExpr } +type Processors = Array (ProcessorInput -> Cofree (Function ProcessorInput) BackendExpr) + +optimize :: Boolean -> Processors -> Ctx -> Env -> Qualified Ident -> Int -> BackendExpr -> Tuple (Array BackendExpr) BackendExpr +optimize traceSteps originalProcessors ctx env qual@(Qualified mn (Ident id)) initN originalExpr = + go (if traceSteps then pure originalExpr else List.Nil) originalProcessors initN originalExpr where - go steps n expr1 = do + go :: List.List BackendExpr -> Processors -> Int -> BackendExpr -> Tuple (Array BackendExpr) BackendExpr + go steps processors' n expr1' = do + let process ee nn pp = foldr (\i p -> let res = i p.val in p { val { expr = Cofree.head res }, processors = p.processors <> [ Cofree.tail res ] }) { val: { expr: ee, env, qual, n: nn }, processors: [] } pp + let { val: { expr: expr1 }, processors } = process expr1' n processors' let Tuple rewrite expr2 = goStep n expr1 let newSteps = if traceSteps then List.Cons expr2 steps else steps if rewrite then - go newSteps (n - 1) expr2 + go newSteps processors (n - 1) expr2 else - Tuple (Array.reverse (List.toUnfoldable steps)) expr2 + Tuple (Array.reverse (List.toUnfoldable steps)) (process expr2 (n - 1) processors).val.expr goStep :: Int -> BackendExpr -> Tuple Boolean BackendExpr goStep n expr1 From 7c5cae67c0cbc7f921662cc0ec75130e1825333b Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Thu, 20 Jul 2023 21:07:37 +0300 Subject: [PATCH 02/34] Adds external processors --- external/Processors.purs | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 external/Processors.purs diff --git a/external/Processors.purs b/external/Processors.purs new file mode 100644 index 00000000..f0d19a67 --- /dev/null +++ b/external/Processors.purs @@ -0,0 +1,6 @@ +module Processors where + +import PureScript.Backend.Optimizer.Semantics (Processors) + +processors :: Processors +processors = [] \ No newline at end of file From 73038676ed32c06dfb596da48fef99d2ebda506e Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Thu, 20 Jul 2023 22:12:55 +0300 Subject: [PATCH 03/34] Adds spago yaml files --- .github/workflows/ci.yml | 2 +- backend-es/spago.yaml | 6 ++++ external/Processors.purs | 6 ---- external/spago.yaml | 4 +++ spago.dhall | 54 ----------------------------- spago.yaml | 73 ++++++++++++++++++++++++++++++++++++++++ 6 files changed, 84 insertions(+), 61 deletions(-) create mode 100644 backend-es/spago.yaml delete mode 100644 external/Processors.purs create mode 100644 external/spago.yaml delete mode 100644 spago.dhall create mode 100644 spago.yaml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b2e864ca..bc4814a2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,7 @@ jobs: ${{ runner.os }}- - name: Setup PureScript dependencies - run: npm i --global purescript@0.15.4 purs-tidy@latest spago@latest purescript-psa@latest + run: npm i --global purescript@0.15.4 purs-tidy@latest spago@next purescript-psa@latest - name: Cache PureScript dependencies uses: actions/cache@v2 diff --git a/backend-es/spago.yaml b/backend-es/spago.yaml new file mode 100644 index 00000000..ea3ebdac --- /dev/null +++ b/backend-es/spago.yaml @@ -0,0 +1,6 @@ +package: + name: "backend-optimizer" + dependencies: + - "convertable-options" + - "heterogeneous" + - "variant" diff --git a/external/Processors.purs b/external/Processors.purs deleted file mode 100644 index f0d19a67..00000000 --- a/external/Processors.purs +++ /dev/null @@ -1,6 +0,0 @@ -module Processors where - -import PureScript.Backend.Optimizer.Semantics (Processors) - -processors :: Processors -processors = [] \ No newline at end of file diff --git a/external/spago.yaml b/external/spago.yaml new file mode 100644 index 00000000..0b1343fb --- /dev/null +++ b/external/spago.yaml @@ -0,0 +1,4 @@ +package: + name: "external-backend-optimizer" + dependencies: + - "free" diff --git a/spago.dhall b/spago.dhall deleted file mode 100644 index c1e7253a..00000000 --- a/spago.dhall +++ /dev/null @@ -1,54 +0,0 @@ -{- -Welcome to a Spago project! -You can edit this file as you like. --} -{ name = "backend-optimizer" -, dependencies = - [ "aff" - , "ansi" - , "argonaut" - , "argonaut-codecs" - , "argparse-basic" - , "arrays" - , "bifunctors" - , "console" - , "control" - , "debug" - , "dodo-printer" - , "effect" - , "either" - , "enums" - , "filterable" - , "foldable-traversable" - , "foreign-object" - , "free" - , "integers" - , "language-cst-parser" - , "lazy" - , "lists" - , "maybe" - , "newtype" - , "node-buffer" - , "node-child-process" - , "node-fs" - , "node-fs-aff" - , "node-glob-basic" - , "node-path" - , "node-process" - , "node-streams" - , "ordered-collections" - , "parallel" - , "partial" - , "posix-types" - , "prelude" - , "refs" - , "safe-coerce" - , "strings" - , "transformers" - , "tuples" - , "unsafe-coerce" - ] -, packages = ./packages.dhall -, sources = - [ "src/**/*.purs", "external/**/*.purs", "backend-es/src/**/*.purs", "backend-es/test/*.purs" ] -} diff --git a/spago.yaml b/spago.yaml new file mode 100644 index 00000000..1cd59b55 --- /dev/null +++ b/spago.yaml @@ -0,0 +1,73 @@ +package: + name: "lib-backend-optimizer" + dependencies: + - "aff" + - "ansi" + - "argonaut" + - "argonaut-codecs" + - "argparse-basic" + - "arrays" + - "bifunctors" + - "console" + - "control" + - "debug" + - "dodo-printer" + - "effect" + - "either" + - "enums" + - "filterable" + - "foldable-traversable" + - "foreign-object" + - "free" + - "integers" + - "language-cst-parser" + - "lazy" + - "lists" + - "maybe" + - "newtype" + - "node-buffer" + - "node-child-process" + - "node-fs" + - "node-fs-aff" + - "node-glob-basic" + - "node-path" + - "node-process" + - "node-streams" + - "ordered-collections" + - "parallel" + - "partial" + - "posix-types" + - "prelude" + - "refs" + - "safe-coerce" + - "strings" + - "transformers" + - "tuples" + - "unsafe-coerce" +workspace: + package_set: + registry: 11.10.0 + extra_packages: + "dodo-printer": + dependencies: + - "ansi" + - "foldable-traversable" + - "lists" + - "maybe" + - "strings" + repo: "https://github.com/natefaubion/purescript-dodo-printer.git" + version: "v2.2.1" + "node-glob-basic": + dependencies: + - "aff" + - "console" + - "effect" + - "lists" + - "maybe" + - "node-fs-aff" + - "node-path" + - "node-process" + - "ordered-collections" + - "strings" + repo: "https://github.com/natefaubion/purescript-node-glob-basic.git" + version: "v1.2.2" \ No newline at end of file From e3a1fa66bbf81dc51cff20decb57c431371d8e44 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Thu, 20 Jul 2023 22:13:17 +0300 Subject: [PATCH 04/34] Adds Processors --- external/src/Processors.purs | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 external/src/Processors.purs diff --git a/external/src/Processors.purs b/external/src/Processors.purs new file mode 100644 index 00000000..f0d19a67 --- /dev/null +++ b/external/src/Processors.purs @@ -0,0 +1,6 @@ +module Processors where + +import PureScript.Backend.Optimizer.Semantics (Processors) + +processors :: Processors +processors = [] \ No newline at end of file From 5623d5481b0b78b289bcd7b78a7bfb8337b2b736 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Thu, 20 Jul 2023 23:47:56 +0300 Subject: [PATCH 05/34] Changes directory structure --- backend-es/spago.yaml | 10 +++ .../snapshots-out/Snapshot.CaseLeafTco.js | 67 ++++++++++--------- .../Snapshot.InlineArrayIndex.js | 6 +- .../test/snapshots-out/Snapshot.Tco05.js | 15 +++-- backend-es/test/snapshots/spago.dhall | 33 --------- .../test/snapshots/{ => src}/Assert.purs | 0 .../Snapshot.BackendSemantics01.purs | 0 .../Snapshot.BackendSemantics02.purs | 0 .../Snapshot.BranchSpecialization01.purs | 0 .../Snapshot.CaptureDerefRegression01.purs | 0 .../{ => src}/Snapshot.CaseCtorNewtype.purs | 0 .../{ => src}/Snapshot.CaseCtorProduct.purs | 0 .../{ => src}/Snapshot.CaseCtorSum.purs | 0 .../{ => src}/Snapshot.CaseGrafting.purs | 0 .../{ => src}/Snapshot.CaseGuarded.purs | 0 .../{ => src}/Snapshot.CaseHeuristics.purs | 0 .../{ => src}/Snapshot.CaseJacobs.purs | 0 .../{ => src}/Snapshot.CaseLeafTco.purs | 0 .../{ => src}/Snapshot.CaseLitArray.purs | 0 .../{ => src}/Snapshot.CaseLitBoolean.purs | 0 .../{ => src}/Snapshot.CaseLitChar.purs | 0 .../{ => src}/Snapshot.CaseLitInt.purs | 0 .../{ => src}/Snapshot.CaseLitNumber.purs | 0 .../{ => src}/Snapshot.CaseLitRecord.purs | 0 .../{ => src}/Snapshot.CaseLitString.purs | 0 .../{ => src}/Snapshot.CaseMulti.purs | 0 .../{ => src}/Snapshot.CaseNamed.purs | 0 .../{ => src}/Snapshot.CasePartial.purs | 0 .../{ => src}/Snapshot.CaseRedBlackTree.purs | 0 .../Snapshot.ConvertableOptions01.purs | 0 .../snapshots/{ => src}/Snapshot.Cps01.purs | 0 .../snapshots/{ => src}/Snapshot.Cps02.purs | 0 .../{ => src}/Snapshot.DefaultRulesEq01.purs | 0 .../{ => src}/Snapshot.DefaultRulesEq02.purs | 0 .../Snapshot.DefaultRulesFunction01.purs | 0 .../Snapshot.DefaultRulesFunctor01.purs | 0 .../Snapshot.DefaultRulesMonoid01.purs | 0 .../Snapshot.DefaultRulesSemigroup.purs | 0 .../Snapshot.DefaultRulesSemigroup02.purs | 0 .../{ => src}/Snapshot.EffectBind01.purs | 0 .../{ => src}/Snapshot.EffectBind02.purs | 0 .../{ => src}/Snapshot.EffectBind03.purs | 0 .../{ => src}/Snapshot.EffectBind04.purs | 0 .../{ => src}/Snapshot.EffectBind05.purs | 0 .../{ => src}/Snapshot.EffectBind06.purs | 0 .../{ => src}/Snapshot.EffectBind07.purs | 0 .../{ => src}/Snapshot.EffectBind08.purs | 0 .../{ => src}/Snapshot.EffectBind09.purs | 0 .../{ => src}/Snapshot.EffectLoops01.purs | 0 .../{ => src}/Snapshot.EffectLoops02.purs | 0 .../{ => src}/Snapshot.EffectLoops03.purs | 0 .../{ => src}/Snapshot.EffectPure01.purs | 0 .../{ => src}/Snapshot.EffectRefs01.purs | 0 .../{ => src}/Snapshot.EffectRefs02.purs | 0 .../{ => src}/Snapshot.EffectUnsafe01.purs | 0 .../{ => src}/Snapshot.EsPrecedence01.purs | 0 .../{ => src}/Snapshot.EsPrecedence02.purs | 0 .../{ => src}/Snapshot.EsPrecedence03.purs | 0 .../{ => src}/Snapshot.EscapeIdentifiers.purs | 0 .../Snapshot.EtaReduceRegression01.purs | 0 .../{ => src}/Snapshot.FunctionCompose01.purs | 0 .../{ => src}/Snapshot.FunctionCompose02.purs | 0 .../{ => src}/Snapshot.FunctionCompose03.purs | 0 .../{ => src}/Snapshot.Fusion01.purs | 0 .../{ => src}/Snapshot.Fusion02.purs | 0 .../{ => src}/Snapshot.HalogenVDomST01.purs | 0 .../{ => src}/Snapshot.HalogenVDomST02.purs | 0 .../{ => src}/Snapshot.HelloWorld01.purs | 0 .../{ => src}/Snapshot.Heterogeneous01.purs | 0 .../snapshots/{ => src}/Snapshot.Html.purs | 0 .../{ => src}/Snapshot.InlineArrayIndex.purs | 0 .../{ => src}/Snapshot.InlineCase01.purs | 0 .../{ => src}/Snapshot.InlineCase02.purs | 0 .../Snapshot.InlineDirectivePropSpine01.purs | 0 .../Snapshot.InlineDirectivePropSpine02.purs | 0 ...hot.InlineLocalReferenceOpArrayLength.purs | 0 .../Snapshot.InlineLocalReferenceOpIsTag.purs | 0 .../{ => src}/Snapshot.InlineNever.purs | 0 .../Snapshot.KnownConstructor07.purs | 0 .../Snapshot.KnownConstructors01.purs | 0 .../Snapshot.KnownConstructors02.purs | 0 .../Snapshot.KnownConstructors03.purs | 0 .../Snapshot.KnownConstructors04.purs | 0 .../Snapshot.KnownConstructors05.purs | 0 .../Snapshot.KnownConstructors06.purs | 0 .../{ => src}/Snapshot.Object01.purs | 0 .../{ => src}/Snapshot.PrimOpArray01.purs | 0 .../{ => src}/Snapshot.PrimOpBoolean01.purs | 0 .../{ => src}/Snapshot.PrimOpBoolean02.purs | 0 .../{ => src}/Snapshot.PrimOpChar01.purs | 0 .../{ => src}/Snapshot.PrimOpChar02.purs | 0 .../{ => src}/Snapshot.PrimOpInt01.purs | 0 .../{ => src}/Snapshot.PrimOpInt02.purs | 0 .../{ => src}/Snapshot.PrimOpIntBit01.purs | 0 .../{ => src}/Snapshot.PrimOpIntBit02.purs | 0 .../{ => src}/Snapshot.PrimOpNumber01.purs | 0 .../{ => src}/Snapshot.PrimOpNumber02.purs | 0 .../{ => src}/Snapshot.PrimOpString01.purs | 0 .../{ => src}/Snapshot.PrimOpString02.purs | 0 .../{ => src}/Snapshot.PrimOpString03.purs | 0 .../Snapshot.ProfunctorLenses01.purs | 0 .../Snapshot.ProfunctorLenses02.purs | 0 .../{ => src}/Snapshot.RecordUnion01.purs | 0 .../Snapshot.RecursionSchemes01.purs | 0 .../Snapshot.RecursiveBindingGroup01.purs | 0 .../Snapshot.RecursiveBindingGroup02.purs | 0 .../{ => src}/Snapshot.STArray01.purs | 0 .../{ => src}/Snapshot.STArray02.purs | 0 .../{ => src}/Snapshot.STArray03.purs | 0 .../{ => src}/Snapshot.STArray04.purs | 0 .../{ => src}/Snapshot.STLoops01.purs | 0 .../{ => src}/Snapshot.STLoops02.purs | 0 .../{ => src}/Snapshot.STLoops03.purs | 0 .../{ => src}/Snapshot.STObject01.purs | 0 .../snapshots/{ => src}/Snapshot.STRun01.purs | 0 .../{ => src}/Snapshot.ShowLiterals.purs | 0 .../{ => src}/Snapshot.StringLiteral01.purs | 0 .../snapshots/{ => src}/Snapshot.Tco01.purs | 0 .../snapshots/{ => src}/Snapshot.Tco02.purs | 0 .../snapshots/{ => src}/Snapshot.Tco03.purs | 0 .../snapshots/{ => src}/Snapshot.Tco04.purs | 0 .../snapshots/{ => src}/Snapshot.Tco05.purs | 0 .../snapshots/{ => src}/Snapshot.Tco06.purs | 0 .../{ => src}/Snapshot.TopLevelHygiene01.purs | 0 .../{ => src}/Snapshot.TopLevelHygiene02.purs | 0 .../Snapshot.UncurriedEffectFns01.purs | 0 .../Snapshot.UncurriedEffectFns02.purs | 0 .../{ => src}/Snapshot.UncurriedFns01.purs | 0 .../Snapshot.UncurriedLocalAbs01.purs | 0 .../{ => src}/Snapshot.UncurriedSTFns01.purs | 0 .../{ => src}/Snapshot.UncurriedSTFns02.purs | 0 .../{ => src}/Snapshot.UnpackArray01.purs | 0 .../Snapshot.UnsafePerformEffect.purs | 0 .../Snapshot.VanLaarhovenTraversals01.purs | 0 .../{ => src}/Snapshot.Variant01.purs | 0 .../{ => src}/Snapshot.Variant02.purs | 0 backend-es/test/{ => src}/Main.purs | 32 ++++++--- backend-es/test/{ => src}/Utils.js | 0 backend-es/test/{ => src}/Utils.purs | 0 139 files changed, 83 insertions(+), 80 deletions(-) delete mode 100644 backend-es/test/snapshots/spago.dhall rename backend-es/test/snapshots/{ => src}/Assert.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.BackendSemantics01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.BackendSemantics02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.BranchSpecialization01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.CaptureDerefRegression01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.CaseCtorNewtype.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.CaseCtorProduct.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.CaseCtorSum.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.CaseGrafting.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.CaseGuarded.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.CaseHeuristics.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.CaseJacobs.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.CaseLeafTco.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.CaseLitArray.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.CaseLitBoolean.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.CaseLitChar.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.CaseLitInt.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.CaseLitNumber.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.CaseLitRecord.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.CaseLitString.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.CaseMulti.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.CaseNamed.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.CasePartial.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.CaseRedBlackTree.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.ConvertableOptions01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.Cps01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.Cps02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.DefaultRulesEq01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.DefaultRulesEq02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.DefaultRulesFunction01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.DefaultRulesFunctor01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.DefaultRulesMonoid01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.DefaultRulesSemigroup.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.DefaultRulesSemigroup02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.EffectBind01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.EffectBind02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.EffectBind03.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.EffectBind04.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.EffectBind05.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.EffectBind06.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.EffectBind07.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.EffectBind08.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.EffectBind09.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.EffectLoops01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.EffectLoops02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.EffectLoops03.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.EffectPure01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.EffectRefs01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.EffectRefs02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.EffectUnsafe01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.EsPrecedence01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.EsPrecedence02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.EsPrecedence03.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.EscapeIdentifiers.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.EtaReduceRegression01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.FunctionCompose01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.FunctionCompose02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.FunctionCompose03.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.Fusion01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.Fusion02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.HalogenVDomST01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.HalogenVDomST02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.HelloWorld01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.Heterogeneous01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.Html.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.InlineArrayIndex.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.InlineCase01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.InlineCase02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.InlineDirectivePropSpine01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.InlineDirectivePropSpine02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.InlineLocalReferenceOpArrayLength.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.InlineLocalReferenceOpIsTag.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.InlineNever.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.KnownConstructor07.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.KnownConstructors01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.KnownConstructors02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.KnownConstructors03.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.KnownConstructors04.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.KnownConstructors05.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.KnownConstructors06.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.Object01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.PrimOpArray01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.PrimOpBoolean01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.PrimOpBoolean02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.PrimOpChar01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.PrimOpChar02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.PrimOpInt01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.PrimOpInt02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.PrimOpIntBit01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.PrimOpIntBit02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.PrimOpNumber01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.PrimOpNumber02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.PrimOpString01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.PrimOpString02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.PrimOpString03.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.ProfunctorLenses01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.ProfunctorLenses02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.RecordUnion01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.RecursionSchemes01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.RecursiveBindingGroup01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.RecursiveBindingGroup02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.STArray01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.STArray02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.STArray03.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.STArray04.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.STLoops01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.STLoops02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.STLoops03.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.STObject01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.STRun01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.ShowLiterals.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.StringLiteral01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.Tco01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.Tco02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.Tco03.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.Tco04.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.Tco05.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.Tco06.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.TopLevelHygiene01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.TopLevelHygiene02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.UncurriedEffectFns01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.UncurriedEffectFns02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.UncurriedFns01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.UncurriedLocalAbs01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.UncurriedSTFns01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.UncurriedSTFns02.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.UnpackArray01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.UnsafePerformEffect.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.VanLaarhovenTraversals01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.Variant01.purs (100%) rename backend-es/test/snapshots/{ => src}/Snapshot.Variant02.purs (100%) rename backend-es/test/{ => src}/Main.purs (88%) rename backend-es/test/{ => src}/Utils.js (100%) rename backend-es/test/{ => src}/Utils.purs (100%) diff --git a/backend-es/spago.yaml b/backend-es/spago.yaml index ea3ebdac..36fbfeb1 100644 --- a/backend-es/spago.yaml +++ b/backend-es/spago.yaml @@ -4,3 +4,13 @@ package: - "convertable-options" - "heterogeneous" - "variant" + test: + main: "Test.Main" + dependencies: + - "aff" + - "lib-backend-optimizer" + - "external-backend-optimizer" + - "test-backend-optimizer" + - "snapshots-backend-optimizer" + pursArgs: + - "-g corefn" diff --git a/backend-es/test/snapshots-out/Snapshot.CaseLeafTco.js b/backend-es/test/snapshots-out/Snapshot.CaseLeafTco.js index fd45e329..06354d18 100644 --- a/backend-es/test/snapshots-out/Snapshot.CaseLeafTco.js +++ b/backend-es/test/snapshots-out/Snapshot.CaseLeafTco.js @@ -5,51 +5,58 @@ const test1 = test1$a0$copy => test1$a1$copy => { let test1$a0 = test1$a0$copy, test1$a1 = test1$a1$copy, test1$c = true, test1$r; while (test1$c) { const b = test1$a0, arr = test1$a1; - const v = Data$dArray.last(arr); - if (0 < arr.length) { - const $0 = (x, y) => { - if (b) { - test1$c = false; - test1$r = []; - return; - } - test1$a0 = b; - test1$a1 = Data$dSemigroup.concatArray([y, x, 3, y, 5, 6, 7, 8, 9, 10, x, 12, 13, 14, 15, 16, 17])(arr); - }; - if (v.tag === "Just") { - if (v._1 === 2) { - if (arr[0] === 1) { + const v = Data$dArray.index(arr)(arr.length - 1 | 0); + const v1 = Data$dArray.index(arr)(0); + const $0 = (x, y) => { + if (b) { + test1$c = false; + test1$r = []; + return; + } + test1$a0 = b; + test1$a1 = Data$dSemigroup.concatArray([y, x, 3, y, 5, 6, 7, 8, 9, 10, x, 12, 13, 14, 15, 16, 17])(arr); + }; + if (v.tag === "Just") { + if (v._1 === 2) { + if (v1.tag === "Just") { + if (v1._1 === 1) { test1$c = false; test1$r = arr; continue; } - $0(arr[0], v._1); + $0(v1._1, v._1); continue; } - $0(arr[0], v._1); - continue; + if (v1.tag === "Nothing") { + test1$c = false; + test1$r = Data$dSemigroup.concatArray(arr)([v._1]); + continue; + } + $runtime.fail(); } - if (v.tag === "Nothing") { + if (v1.tag === "Nothing") { test1$c = false; - test1$r = Data$dSemigroup.concatArray(arr)([arr[0]]); + test1$r = Data$dSemigroup.concatArray(arr)([v._1]); + continue; + } + if (v1.tag === "Just") { + $0(v1._1, v._1); continue; } $runtime.fail(); } - if (v.tag === "Just") { - if (v._1 === 2) { + if (v.tag === "Nothing") { + if (v1.tag === "Nothing") { test1$c = false; - test1$r = Data$dSemigroup.concatArray(arr)([v._1]); + test1$r = arr; continue; } - test1$c = false; - test1$r = Data$dSemigroup.concatArray(arr)([v._1]); - continue; - } - if (v.tag === "Nothing") { - test1$c = false; - test1$r = arr; - continue; + if (v1.tag === "Just") { + test1$c = false; + test1$r = Data$dSemigroup.concatArray(arr)([v1._1]); + continue; + } + $runtime.fail(); } $runtime.fail(); } diff --git a/backend-es/test/snapshots-out/Snapshot.InlineArrayIndex.js b/backend-es/test/snapshots-out/Snapshot.InlineArrayIndex.js index c83ea447..65462682 100644 --- a/backend-es/test/snapshots-out/Snapshot.InlineArrayIndex.js +++ b/backend-es/test/snapshots-out/Snapshot.InlineArrayIndex.js @@ -1,6 +1,7 @@ // @inline export testArrayIndex never import * as $runtime from "../runtime.js"; import * as Assert from "../Assert/index.js"; +import * as Data$dArray from "../Data.Array/index.js"; import * as Data$dMaybe from "../Data.Maybe/index.js"; import * as Data$dShow from "../Data.Show/index.js"; const assertEqual = /* #__PURE__ */ Assert.assertEqual({ @@ -19,10 +20,7 @@ const assertEqual = /* #__PURE__ */ Assert.assertEqual({ $runtime.fail(); } }); -const testArrayIndex = arr => ix => { - if (ix >= 0 && ix < arr.length) { return Data$dMaybe.$Maybe("Just", arr[ix]); } - return Data$dMaybe.Nothing; -}; +const testArrayIndex = arr => ix => Data$dArray.index(arr)(ix); const main = /* #__PURE__ */ (() => { const array = [1, 2, 3]; const $0 = assertEqual("index -1")({expected: Data$dMaybe.Nothing, actual: testArrayIndex(array)(-1)}); diff --git a/backend-es/test/snapshots-out/Snapshot.Tco05.js b/backend-es/test/snapshots-out/Snapshot.Tco05.js index 003920ab..d287330d 100644 --- a/backend-es/test/snapshots-out/Snapshot.Tco05.js +++ b/backend-es/test/snapshots-out/Snapshot.Tco05.js @@ -1,11 +1,14 @@ +import * as $runtime from "../runtime.js"; +import * as Data$dArray from "../Data.Array/index.js"; import * as Data$dMaybe from "../Data.Maybe/index.js"; const span = p => arr => { const go = go$a0$copy => { let go$a0 = go$a0$copy, go$c = true, go$r; while (go$c) { const i = go$a0; - if (i >= 0 && i < arr.length) { - if (p(arr[i])) { + const v = Data$dArray.index(arr)(i); + if (v.tag === "Just") { + if (p(v._1)) { go$a0 = i + 1 | 0; continue; } @@ -13,8 +16,12 @@ const span = p => arr => { go$r = Data$dMaybe.$Maybe("Just", i); continue; } - go$c = false; - go$r = Data$dMaybe.Nothing; + if (v.tag === "Nothing") { + go$c = false; + go$r = Data$dMaybe.Nothing; + continue; + } + $runtime.fail(); } return go$r; }; diff --git a/backend-es/test/snapshots/spago.dhall b/backend-es/test/snapshots/spago.dhall deleted file mode 100644 index 4ee04bb9..00000000 --- a/backend-es/test/snapshots/spago.dhall +++ /dev/null @@ -1,33 +0,0 @@ -{ name = "snapshots" -, dependencies = - [ "arrays" - , "console" - , "convertable-options" - , "effect" - , "either" - , "exceptions" - , "exists" - , "foldable-traversable" - , "foreign-object" - , "functions" - , "heterogeneous" - , "identity" - , "integers" - , "lists" - , "maybe" - , "partial" - , "prelude" - , "profunctor-lenses" - , "record" - , "refs" - , "safe-coerce" - , "st" - , "strings" - , "tuples" - , "type-equality" - , "unsafe-coerce" - , "variant" - ] -, packages = ../../../packages.dhall -, sources = [ "./*.purs", "./*/*.purs" ] -} diff --git a/backend-es/test/snapshots/Assert.purs b/backend-es/test/snapshots/src/Assert.purs similarity index 100% rename from backend-es/test/snapshots/Assert.purs rename to backend-es/test/snapshots/src/Assert.purs diff --git a/backend-es/test/snapshots/Snapshot.BackendSemantics01.purs b/backend-es/test/snapshots/src/Snapshot.BackendSemantics01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.BackendSemantics01.purs rename to backend-es/test/snapshots/src/Snapshot.BackendSemantics01.purs diff --git a/backend-es/test/snapshots/Snapshot.BackendSemantics02.purs b/backend-es/test/snapshots/src/Snapshot.BackendSemantics02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.BackendSemantics02.purs rename to backend-es/test/snapshots/src/Snapshot.BackendSemantics02.purs diff --git a/backend-es/test/snapshots/Snapshot.BranchSpecialization01.purs b/backend-es/test/snapshots/src/Snapshot.BranchSpecialization01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.BranchSpecialization01.purs rename to backend-es/test/snapshots/src/Snapshot.BranchSpecialization01.purs diff --git a/backend-es/test/snapshots/Snapshot.CaptureDerefRegression01.purs b/backend-es/test/snapshots/src/Snapshot.CaptureDerefRegression01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.CaptureDerefRegression01.purs rename to backend-es/test/snapshots/src/Snapshot.CaptureDerefRegression01.purs diff --git a/backend-es/test/snapshots/Snapshot.CaseCtorNewtype.purs b/backend-es/test/snapshots/src/Snapshot.CaseCtorNewtype.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.CaseCtorNewtype.purs rename to backend-es/test/snapshots/src/Snapshot.CaseCtorNewtype.purs diff --git a/backend-es/test/snapshots/Snapshot.CaseCtorProduct.purs b/backend-es/test/snapshots/src/Snapshot.CaseCtorProduct.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.CaseCtorProduct.purs rename to backend-es/test/snapshots/src/Snapshot.CaseCtorProduct.purs diff --git a/backend-es/test/snapshots/Snapshot.CaseCtorSum.purs b/backend-es/test/snapshots/src/Snapshot.CaseCtorSum.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.CaseCtorSum.purs rename to backend-es/test/snapshots/src/Snapshot.CaseCtorSum.purs diff --git a/backend-es/test/snapshots/Snapshot.CaseGrafting.purs b/backend-es/test/snapshots/src/Snapshot.CaseGrafting.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.CaseGrafting.purs rename to backend-es/test/snapshots/src/Snapshot.CaseGrafting.purs diff --git a/backend-es/test/snapshots/Snapshot.CaseGuarded.purs b/backend-es/test/snapshots/src/Snapshot.CaseGuarded.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.CaseGuarded.purs rename to backend-es/test/snapshots/src/Snapshot.CaseGuarded.purs diff --git a/backend-es/test/snapshots/Snapshot.CaseHeuristics.purs b/backend-es/test/snapshots/src/Snapshot.CaseHeuristics.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.CaseHeuristics.purs rename to backend-es/test/snapshots/src/Snapshot.CaseHeuristics.purs diff --git a/backend-es/test/snapshots/Snapshot.CaseJacobs.purs b/backend-es/test/snapshots/src/Snapshot.CaseJacobs.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.CaseJacobs.purs rename to backend-es/test/snapshots/src/Snapshot.CaseJacobs.purs diff --git a/backend-es/test/snapshots/Snapshot.CaseLeafTco.purs b/backend-es/test/snapshots/src/Snapshot.CaseLeafTco.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.CaseLeafTco.purs rename to backend-es/test/snapshots/src/Snapshot.CaseLeafTco.purs diff --git a/backend-es/test/snapshots/Snapshot.CaseLitArray.purs b/backend-es/test/snapshots/src/Snapshot.CaseLitArray.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.CaseLitArray.purs rename to backend-es/test/snapshots/src/Snapshot.CaseLitArray.purs diff --git a/backend-es/test/snapshots/Snapshot.CaseLitBoolean.purs b/backend-es/test/snapshots/src/Snapshot.CaseLitBoolean.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.CaseLitBoolean.purs rename to backend-es/test/snapshots/src/Snapshot.CaseLitBoolean.purs diff --git a/backend-es/test/snapshots/Snapshot.CaseLitChar.purs b/backend-es/test/snapshots/src/Snapshot.CaseLitChar.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.CaseLitChar.purs rename to backend-es/test/snapshots/src/Snapshot.CaseLitChar.purs diff --git a/backend-es/test/snapshots/Snapshot.CaseLitInt.purs b/backend-es/test/snapshots/src/Snapshot.CaseLitInt.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.CaseLitInt.purs rename to backend-es/test/snapshots/src/Snapshot.CaseLitInt.purs diff --git a/backend-es/test/snapshots/Snapshot.CaseLitNumber.purs b/backend-es/test/snapshots/src/Snapshot.CaseLitNumber.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.CaseLitNumber.purs rename to backend-es/test/snapshots/src/Snapshot.CaseLitNumber.purs diff --git a/backend-es/test/snapshots/Snapshot.CaseLitRecord.purs b/backend-es/test/snapshots/src/Snapshot.CaseLitRecord.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.CaseLitRecord.purs rename to backend-es/test/snapshots/src/Snapshot.CaseLitRecord.purs diff --git a/backend-es/test/snapshots/Snapshot.CaseLitString.purs b/backend-es/test/snapshots/src/Snapshot.CaseLitString.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.CaseLitString.purs rename to backend-es/test/snapshots/src/Snapshot.CaseLitString.purs diff --git a/backend-es/test/snapshots/Snapshot.CaseMulti.purs b/backend-es/test/snapshots/src/Snapshot.CaseMulti.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.CaseMulti.purs rename to backend-es/test/snapshots/src/Snapshot.CaseMulti.purs diff --git a/backend-es/test/snapshots/Snapshot.CaseNamed.purs b/backend-es/test/snapshots/src/Snapshot.CaseNamed.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.CaseNamed.purs rename to backend-es/test/snapshots/src/Snapshot.CaseNamed.purs diff --git a/backend-es/test/snapshots/Snapshot.CasePartial.purs b/backend-es/test/snapshots/src/Snapshot.CasePartial.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.CasePartial.purs rename to backend-es/test/snapshots/src/Snapshot.CasePartial.purs diff --git a/backend-es/test/snapshots/Snapshot.CaseRedBlackTree.purs b/backend-es/test/snapshots/src/Snapshot.CaseRedBlackTree.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.CaseRedBlackTree.purs rename to backend-es/test/snapshots/src/Snapshot.CaseRedBlackTree.purs diff --git a/backend-es/test/snapshots/Snapshot.ConvertableOptions01.purs b/backend-es/test/snapshots/src/Snapshot.ConvertableOptions01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.ConvertableOptions01.purs rename to backend-es/test/snapshots/src/Snapshot.ConvertableOptions01.purs diff --git a/backend-es/test/snapshots/Snapshot.Cps01.purs b/backend-es/test/snapshots/src/Snapshot.Cps01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.Cps01.purs rename to backend-es/test/snapshots/src/Snapshot.Cps01.purs diff --git a/backend-es/test/snapshots/Snapshot.Cps02.purs b/backend-es/test/snapshots/src/Snapshot.Cps02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.Cps02.purs rename to backend-es/test/snapshots/src/Snapshot.Cps02.purs diff --git a/backend-es/test/snapshots/Snapshot.DefaultRulesEq01.purs b/backend-es/test/snapshots/src/Snapshot.DefaultRulesEq01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.DefaultRulesEq01.purs rename to backend-es/test/snapshots/src/Snapshot.DefaultRulesEq01.purs diff --git a/backend-es/test/snapshots/Snapshot.DefaultRulesEq02.purs b/backend-es/test/snapshots/src/Snapshot.DefaultRulesEq02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.DefaultRulesEq02.purs rename to backend-es/test/snapshots/src/Snapshot.DefaultRulesEq02.purs diff --git a/backend-es/test/snapshots/Snapshot.DefaultRulesFunction01.purs b/backend-es/test/snapshots/src/Snapshot.DefaultRulesFunction01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.DefaultRulesFunction01.purs rename to backend-es/test/snapshots/src/Snapshot.DefaultRulesFunction01.purs diff --git a/backend-es/test/snapshots/Snapshot.DefaultRulesFunctor01.purs b/backend-es/test/snapshots/src/Snapshot.DefaultRulesFunctor01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.DefaultRulesFunctor01.purs rename to backend-es/test/snapshots/src/Snapshot.DefaultRulesFunctor01.purs diff --git a/backend-es/test/snapshots/Snapshot.DefaultRulesMonoid01.purs b/backend-es/test/snapshots/src/Snapshot.DefaultRulesMonoid01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.DefaultRulesMonoid01.purs rename to backend-es/test/snapshots/src/Snapshot.DefaultRulesMonoid01.purs diff --git a/backend-es/test/snapshots/Snapshot.DefaultRulesSemigroup.purs b/backend-es/test/snapshots/src/Snapshot.DefaultRulesSemigroup.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.DefaultRulesSemigroup.purs rename to backend-es/test/snapshots/src/Snapshot.DefaultRulesSemigroup.purs diff --git a/backend-es/test/snapshots/Snapshot.DefaultRulesSemigroup02.purs b/backend-es/test/snapshots/src/Snapshot.DefaultRulesSemigroup02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.DefaultRulesSemigroup02.purs rename to backend-es/test/snapshots/src/Snapshot.DefaultRulesSemigroup02.purs diff --git a/backend-es/test/snapshots/Snapshot.EffectBind01.purs b/backend-es/test/snapshots/src/Snapshot.EffectBind01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.EffectBind01.purs rename to backend-es/test/snapshots/src/Snapshot.EffectBind01.purs diff --git a/backend-es/test/snapshots/Snapshot.EffectBind02.purs b/backend-es/test/snapshots/src/Snapshot.EffectBind02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.EffectBind02.purs rename to backend-es/test/snapshots/src/Snapshot.EffectBind02.purs diff --git a/backend-es/test/snapshots/Snapshot.EffectBind03.purs b/backend-es/test/snapshots/src/Snapshot.EffectBind03.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.EffectBind03.purs rename to backend-es/test/snapshots/src/Snapshot.EffectBind03.purs diff --git a/backend-es/test/snapshots/Snapshot.EffectBind04.purs b/backend-es/test/snapshots/src/Snapshot.EffectBind04.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.EffectBind04.purs rename to backend-es/test/snapshots/src/Snapshot.EffectBind04.purs diff --git a/backend-es/test/snapshots/Snapshot.EffectBind05.purs b/backend-es/test/snapshots/src/Snapshot.EffectBind05.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.EffectBind05.purs rename to backend-es/test/snapshots/src/Snapshot.EffectBind05.purs diff --git a/backend-es/test/snapshots/Snapshot.EffectBind06.purs b/backend-es/test/snapshots/src/Snapshot.EffectBind06.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.EffectBind06.purs rename to backend-es/test/snapshots/src/Snapshot.EffectBind06.purs diff --git a/backend-es/test/snapshots/Snapshot.EffectBind07.purs b/backend-es/test/snapshots/src/Snapshot.EffectBind07.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.EffectBind07.purs rename to backend-es/test/snapshots/src/Snapshot.EffectBind07.purs diff --git a/backend-es/test/snapshots/Snapshot.EffectBind08.purs b/backend-es/test/snapshots/src/Snapshot.EffectBind08.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.EffectBind08.purs rename to backend-es/test/snapshots/src/Snapshot.EffectBind08.purs diff --git a/backend-es/test/snapshots/Snapshot.EffectBind09.purs b/backend-es/test/snapshots/src/Snapshot.EffectBind09.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.EffectBind09.purs rename to backend-es/test/snapshots/src/Snapshot.EffectBind09.purs diff --git a/backend-es/test/snapshots/Snapshot.EffectLoops01.purs b/backend-es/test/snapshots/src/Snapshot.EffectLoops01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.EffectLoops01.purs rename to backend-es/test/snapshots/src/Snapshot.EffectLoops01.purs diff --git a/backend-es/test/snapshots/Snapshot.EffectLoops02.purs b/backend-es/test/snapshots/src/Snapshot.EffectLoops02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.EffectLoops02.purs rename to backend-es/test/snapshots/src/Snapshot.EffectLoops02.purs diff --git a/backend-es/test/snapshots/Snapshot.EffectLoops03.purs b/backend-es/test/snapshots/src/Snapshot.EffectLoops03.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.EffectLoops03.purs rename to backend-es/test/snapshots/src/Snapshot.EffectLoops03.purs diff --git a/backend-es/test/snapshots/Snapshot.EffectPure01.purs b/backend-es/test/snapshots/src/Snapshot.EffectPure01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.EffectPure01.purs rename to backend-es/test/snapshots/src/Snapshot.EffectPure01.purs diff --git a/backend-es/test/snapshots/Snapshot.EffectRefs01.purs b/backend-es/test/snapshots/src/Snapshot.EffectRefs01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.EffectRefs01.purs rename to backend-es/test/snapshots/src/Snapshot.EffectRefs01.purs diff --git a/backend-es/test/snapshots/Snapshot.EffectRefs02.purs b/backend-es/test/snapshots/src/Snapshot.EffectRefs02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.EffectRefs02.purs rename to backend-es/test/snapshots/src/Snapshot.EffectRefs02.purs diff --git a/backend-es/test/snapshots/Snapshot.EffectUnsafe01.purs b/backend-es/test/snapshots/src/Snapshot.EffectUnsafe01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.EffectUnsafe01.purs rename to backend-es/test/snapshots/src/Snapshot.EffectUnsafe01.purs diff --git a/backend-es/test/snapshots/Snapshot.EsPrecedence01.purs b/backend-es/test/snapshots/src/Snapshot.EsPrecedence01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.EsPrecedence01.purs rename to backend-es/test/snapshots/src/Snapshot.EsPrecedence01.purs diff --git a/backend-es/test/snapshots/Snapshot.EsPrecedence02.purs b/backend-es/test/snapshots/src/Snapshot.EsPrecedence02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.EsPrecedence02.purs rename to backend-es/test/snapshots/src/Snapshot.EsPrecedence02.purs diff --git a/backend-es/test/snapshots/Snapshot.EsPrecedence03.purs b/backend-es/test/snapshots/src/Snapshot.EsPrecedence03.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.EsPrecedence03.purs rename to backend-es/test/snapshots/src/Snapshot.EsPrecedence03.purs diff --git a/backend-es/test/snapshots/Snapshot.EscapeIdentifiers.purs b/backend-es/test/snapshots/src/Snapshot.EscapeIdentifiers.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.EscapeIdentifiers.purs rename to backend-es/test/snapshots/src/Snapshot.EscapeIdentifiers.purs diff --git a/backend-es/test/snapshots/Snapshot.EtaReduceRegression01.purs b/backend-es/test/snapshots/src/Snapshot.EtaReduceRegression01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.EtaReduceRegression01.purs rename to backend-es/test/snapshots/src/Snapshot.EtaReduceRegression01.purs diff --git a/backend-es/test/snapshots/Snapshot.FunctionCompose01.purs b/backend-es/test/snapshots/src/Snapshot.FunctionCompose01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.FunctionCompose01.purs rename to backend-es/test/snapshots/src/Snapshot.FunctionCompose01.purs diff --git a/backend-es/test/snapshots/Snapshot.FunctionCompose02.purs b/backend-es/test/snapshots/src/Snapshot.FunctionCompose02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.FunctionCompose02.purs rename to backend-es/test/snapshots/src/Snapshot.FunctionCompose02.purs diff --git a/backend-es/test/snapshots/Snapshot.FunctionCompose03.purs b/backend-es/test/snapshots/src/Snapshot.FunctionCompose03.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.FunctionCompose03.purs rename to backend-es/test/snapshots/src/Snapshot.FunctionCompose03.purs diff --git a/backend-es/test/snapshots/Snapshot.Fusion01.purs b/backend-es/test/snapshots/src/Snapshot.Fusion01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.Fusion01.purs rename to backend-es/test/snapshots/src/Snapshot.Fusion01.purs diff --git a/backend-es/test/snapshots/Snapshot.Fusion02.purs b/backend-es/test/snapshots/src/Snapshot.Fusion02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.Fusion02.purs rename to backend-es/test/snapshots/src/Snapshot.Fusion02.purs diff --git a/backend-es/test/snapshots/Snapshot.HalogenVDomST01.purs b/backend-es/test/snapshots/src/Snapshot.HalogenVDomST01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.HalogenVDomST01.purs rename to backend-es/test/snapshots/src/Snapshot.HalogenVDomST01.purs diff --git a/backend-es/test/snapshots/Snapshot.HalogenVDomST02.purs b/backend-es/test/snapshots/src/Snapshot.HalogenVDomST02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.HalogenVDomST02.purs rename to backend-es/test/snapshots/src/Snapshot.HalogenVDomST02.purs diff --git a/backend-es/test/snapshots/Snapshot.HelloWorld01.purs b/backend-es/test/snapshots/src/Snapshot.HelloWorld01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.HelloWorld01.purs rename to backend-es/test/snapshots/src/Snapshot.HelloWorld01.purs diff --git a/backend-es/test/snapshots/Snapshot.Heterogeneous01.purs b/backend-es/test/snapshots/src/Snapshot.Heterogeneous01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.Heterogeneous01.purs rename to backend-es/test/snapshots/src/Snapshot.Heterogeneous01.purs diff --git a/backend-es/test/snapshots/Snapshot.Html.purs b/backend-es/test/snapshots/src/Snapshot.Html.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.Html.purs rename to backend-es/test/snapshots/src/Snapshot.Html.purs diff --git a/backend-es/test/snapshots/Snapshot.InlineArrayIndex.purs b/backend-es/test/snapshots/src/Snapshot.InlineArrayIndex.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.InlineArrayIndex.purs rename to backend-es/test/snapshots/src/Snapshot.InlineArrayIndex.purs diff --git a/backend-es/test/snapshots/Snapshot.InlineCase01.purs b/backend-es/test/snapshots/src/Snapshot.InlineCase01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.InlineCase01.purs rename to backend-es/test/snapshots/src/Snapshot.InlineCase01.purs diff --git a/backend-es/test/snapshots/Snapshot.InlineCase02.purs b/backend-es/test/snapshots/src/Snapshot.InlineCase02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.InlineCase02.purs rename to backend-es/test/snapshots/src/Snapshot.InlineCase02.purs diff --git a/backend-es/test/snapshots/Snapshot.InlineDirectivePropSpine01.purs b/backend-es/test/snapshots/src/Snapshot.InlineDirectivePropSpine01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.InlineDirectivePropSpine01.purs rename to backend-es/test/snapshots/src/Snapshot.InlineDirectivePropSpine01.purs diff --git a/backend-es/test/snapshots/Snapshot.InlineDirectivePropSpine02.purs b/backend-es/test/snapshots/src/Snapshot.InlineDirectivePropSpine02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.InlineDirectivePropSpine02.purs rename to backend-es/test/snapshots/src/Snapshot.InlineDirectivePropSpine02.purs diff --git a/backend-es/test/snapshots/Snapshot.InlineLocalReferenceOpArrayLength.purs b/backend-es/test/snapshots/src/Snapshot.InlineLocalReferenceOpArrayLength.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.InlineLocalReferenceOpArrayLength.purs rename to backend-es/test/snapshots/src/Snapshot.InlineLocalReferenceOpArrayLength.purs diff --git a/backend-es/test/snapshots/Snapshot.InlineLocalReferenceOpIsTag.purs b/backend-es/test/snapshots/src/Snapshot.InlineLocalReferenceOpIsTag.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.InlineLocalReferenceOpIsTag.purs rename to backend-es/test/snapshots/src/Snapshot.InlineLocalReferenceOpIsTag.purs diff --git a/backend-es/test/snapshots/Snapshot.InlineNever.purs b/backend-es/test/snapshots/src/Snapshot.InlineNever.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.InlineNever.purs rename to backend-es/test/snapshots/src/Snapshot.InlineNever.purs diff --git a/backend-es/test/snapshots/Snapshot.KnownConstructor07.purs b/backend-es/test/snapshots/src/Snapshot.KnownConstructor07.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.KnownConstructor07.purs rename to backend-es/test/snapshots/src/Snapshot.KnownConstructor07.purs diff --git a/backend-es/test/snapshots/Snapshot.KnownConstructors01.purs b/backend-es/test/snapshots/src/Snapshot.KnownConstructors01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.KnownConstructors01.purs rename to backend-es/test/snapshots/src/Snapshot.KnownConstructors01.purs diff --git a/backend-es/test/snapshots/Snapshot.KnownConstructors02.purs b/backend-es/test/snapshots/src/Snapshot.KnownConstructors02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.KnownConstructors02.purs rename to backend-es/test/snapshots/src/Snapshot.KnownConstructors02.purs diff --git a/backend-es/test/snapshots/Snapshot.KnownConstructors03.purs b/backend-es/test/snapshots/src/Snapshot.KnownConstructors03.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.KnownConstructors03.purs rename to backend-es/test/snapshots/src/Snapshot.KnownConstructors03.purs diff --git a/backend-es/test/snapshots/Snapshot.KnownConstructors04.purs b/backend-es/test/snapshots/src/Snapshot.KnownConstructors04.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.KnownConstructors04.purs rename to backend-es/test/snapshots/src/Snapshot.KnownConstructors04.purs diff --git a/backend-es/test/snapshots/Snapshot.KnownConstructors05.purs b/backend-es/test/snapshots/src/Snapshot.KnownConstructors05.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.KnownConstructors05.purs rename to backend-es/test/snapshots/src/Snapshot.KnownConstructors05.purs diff --git a/backend-es/test/snapshots/Snapshot.KnownConstructors06.purs b/backend-es/test/snapshots/src/Snapshot.KnownConstructors06.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.KnownConstructors06.purs rename to backend-es/test/snapshots/src/Snapshot.KnownConstructors06.purs diff --git a/backend-es/test/snapshots/Snapshot.Object01.purs b/backend-es/test/snapshots/src/Snapshot.Object01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.Object01.purs rename to backend-es/test/snapshots/src/Snapshot.Object01.purs diff --git a/backend-es/test/snapshots/Snapshot.PrimOpArray01.purs b/backend-es/test/snapshots/src/Snapshot.PrimOpArray01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.PrimOpArray01.purs rename to backend-es/test/snapshots/src/Snapshot.PrimOpArray01.purs diff --git a/backend-es/test/snapshots/Snapshot.PrimOpBoolean01.purs b/backend-es/test/snapshots/src/Snapshot.PrimOpBoolean01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.PrimOpBoolean01.purs rename to backend-es/test/snapshots/src/Snapshot.PrimOpBoolean01.purs diff --git a/backend-es/test/snapshots/Snapshot.PrimOpBoolean02.purs b/backend-es/test/snapshots/src/Snapshot.PrimOpBoolean02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.PrimOpBoolean02.purs rename to backend-es/test/snapshots/src/Snapshot.PrimOpBoolean02.purs diff --git a/backend-es/test/snapshots/Snapshot.PrimOpChar01.purs b/backend-es/test/snapshots/src/Snapshot.PrimOpChar01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.PrimOpChar01.purs rename to backend-es/test/snapshots/src/Snapshot.PrimOpChar01.purs diff --git a/backend-es/test/snapshots/Snapshot.PrimOpChar02.purs b/backend-es/test/snapshots/src/Snapshot.PrimOpChar02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.PrimOpChar02.purs rename to backend-es/test/snapshots/src/Snapshot.PrimOpChar02.purs diff --git a/backend-es/test/snapshots/Snapshot.PrimOpInt01.purs b/backend-es/test/snapshots/src/Snapshot.PrimOpInt01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.PrimOpInt01.purs rename to backend-es/test/snapshots/src/Snapshot.PrimOpInt01.purs diff --git a/backend-es/test/snapshots/Snapshot.PrimOpInt02.purs b/backend-es/test/snapshots/src/Snapshot.PrimOpInt02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.PrimOpInt02.purs rename to backend-es/test/snapshots/src/Snapshot.PrimOpInt02.purs diff --git a/backend-es/test/snapshots/Snapshot.PrimOpIntBit01.purs b/backend-es/test/snapshots/src/Snapshot.PrimOpIntBit01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.PrimOpIntBit01.purs rename to backend-es/test/snapshots/src/Snapshot.PrimOpIntBit01.purs diff --git a/backend-es/test/snapshots/Snapshot.PrimOpIntBit02.purs b/backend-es/test/snapshots/src/Snapshot.PrimOpIntBit02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.PrimOpIntBit02.purs rename to backend-es/test/snapshots/src/Snapshot.PrimOpIntBit02.purs diff --git a/backend-es/test/snapshots/Snapshot.PrimOpNumber01.purs b/backend-es/test/snapshots/src/Snapshot.PrimOpNumber01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.PrimOpNumber01.purs rename to backend-es/test/snapshots/src/Snapshot.PrimOpNumber01.purs diff --git a/backend-es/test/snapshots/Snapshot.PrimOpNumber02.purs b/backend-es/test/snapshots/src/Snapshot.PrimOpNumber02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.PrimOpNumber02.purs rename to backend-es/test/snapshots/src/Snapshot.PrimOpNumber02.purs diff --git a/backend-es/test/snapshots/Snapshot.PrimOpString01.purs b/backend-es/test/snapshots/src/Snapshot.PrimOpString01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.PrimOpString01.purs rename to backend-es/test/snapshots/src/Snapshot.PrimOpString01.purs diff --git a/backend-es/test/snapshots/Snapshot.PrimOpString02.purs b/backend-es/test/snapshots/src/Snapshot.PrimOpString02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.PrimOpString02.purs rename to backend-es/test/snapshots/src/Snapshot.PrimOpString02.purs diff --git a/backend-es/test/snapshots/Snapshot.PrimOpString03.purs b/backend-es/test/snapshots/src/Snapshot.PrimOpString03.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.PrimOpString03.purs rename to backend-es/test/snapshots/src/Snapshot.PrimOpString03.purs diff --git a/backend-es/test/snapshots/Snapshot.ProfunctorLenses01.purs b/backend-es/test/snapshots/src/Snapshot.ProfunctorLenses01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.ProfunctorLenses01.purs rename to backend-es/test/snapshots/src/Snapshot.ProfunctorLenses01.purs diff --git a/backend-es/test/snapshots/Snapshot.ProfunctorLenses02.purs b/backend-es/test/snapshots/src/Snapshot.ProfunctorLenses02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.ProfunctorLenses02.purs rename to backend-es/test/snapshots/src/Snapshot.ProfunctorLenses02.purs diff --git a/backend-es/test/snapshots/Snapshot.RecordUnion01.purs b/backend-es/test/snapshots/src/Snapshot.RecordUnion01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.RecordUnion01.purs rename to backend-es/test/snapshots/src/Snapshot.RecordUnion01.purs diff --git a/backend-es/test/snapshots/Snapshot.RecursionSchemes01.purs b/backend-es/test/snapshots/src/Snapshot.RecursionSchemes01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.RecursionSchemes01.purs rename to backend-es/test/snapshots/src/Snapshot.RecursionSchemes01.purs diff --git a/backend-es/test/snapshots/Snapshot.RecursiveBindingGroup01.purs b/backend-es/test/snapshots/src/Snapshot.RecursiveBindingGroup01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.RecursiveBindingGroup01.purs rename to backend-es/test/snapshots/src/Snapshot.RecursiveBindingGroup01.purs diff --git a/backend-es/test/snapshots/Snapshot.RecursiveBindingGroup02.purs b/backend-es/test/snapshots/src/Snapshot.RecursiveBindingGroup02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.RecursiveBindingGroup02.purs rename to backend-es/test/snapshots/src/Snapshot.RecursiveBindingGroup02.purs diff --git a/backend-es/test/snapshots/Snapshot.STArray01.purs b/backend-es/test/snapshots/src/Snapshot.STArray01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.STArray01.purs rename to backend-es/test/snapshots/src/Snapshot.STArray01.purs diff --git a/backend-es/test/snapshots/Snapshot.STArray02.purs b/backend-es/test/snapshots/src/Snapshot.STArray02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.STArray02.purs rename to backend-es/test/snapshots/src/Snapshot.STArray02.purs diff --git a/backend-es/test/snapshots/Snapshot.STArray03.purs b/backend-es/test/snapshots/src/Snapshot.STArray03.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.STArray03.purs rename to backend-es/test/snapshots/src/Snapshot.STArray03.purs diff --git a/backend-es/test/snapshots/Snapshot.STArray04.purs b/backend-es/test/snapshots/src/Snapshot.STArray04.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.STArray04.purs rename to backend-es/test/snapshots/src/Snapshot.STArray04.purs diff --git a/backend-es/test/snapshots/Snapshot.STLoops01.purs b/backend-es/test/snapshots/src/Snapshot.STLoops01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.STLoops01.purs rename to backend-es/test/snapshots/src/Snapshot.STLoops01.purs diff --git a/backend-es/test/snapshots/Snapshot.STLoops02.purs b/backend-es/test/snapshots/src/Snapshot.STLoops02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.STLoops02.purs rename to backend-es/test/snapshots/src/Snapshot.STLoops02.purs diff --git a/backend-es/test/snapshots/Snapshot.STLoops03.purs b/backend-es/test/snapshots/src/Snapshot.STLoops03.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.STLoops03.purs rename to backend-es/test/snapshots/src/Snapshot.STLoops03.purs diff --git a/backend-es/test/snapshots/Snapshot.STObject01.purs b/backend-es/test/snapshots/src/Snapshot.STObject01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.STObject01.purs rename to backend-es/test/snapshots/src/Snapshot.STObject01.purs diff --git a/backend-es/test/snapshots/Snapshot.STRun01.purs b/backend-es/test/snapshots/src/Snapshot.STRun01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.STRun01.purs rename to backend-es/test/snapshots/src/Snapshot.STRun01.purs diff --git a/backend-es/test/snapshots/Snapshot.ShowLiterals.purs b/backend-es/test/snapshots/src/Snapshot.ShowLiterals.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.ShowLiterals.purs rename to backend-es/test/snapshots/src/Snapshot.ShowLiterals.purs diff --git a/backend-es/test/snapshots/Snapshot.StringLiteral01.purs b/backend-es/test/snapshots/src/Snapshot.StringLiteral01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.StringLiteral01.purs rename to backend-es/test/snapshots/src/Snapshot.StringLiteral01.purs diff --git a/backend-es/test/snapshots/Snapshot.Tco01.purs b/backend-es/test/snapshots/src/Snapshot.Tco01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.Tco01.purs rename to backend-es/test/snapshots/src/Snapshot.Tco01.purs diff --git a/backend-es/test/snapshots/Snapshot.Tco02.purs b/backend-es/test/snapshots/src/Snapshot.Tco02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.Tco02.purs rename to backend-es/test/snapshots/src/Snapshot.Tco02.purs diff --git a/backend-es/test/snapshots/Snapshot.Tco03.purs b/backend-es/test/snapshots/src/Snapshot.Tco03.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.Tco03.purs rename to backend-es/test/snapshots/src/Snapshot.Tco03.purs diff --git a/backend-es/test/snapshots/Snapshot.Tco04.purs b/backend-es/test/snapshots/src/Snapshot.Tco04.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.Tco04.purs rename to backend-es/test/snapshots/src/Snapshot.Tco04.purs diff --git a/backend-es/test/snapshots/Snapshot.Tco05.purs b/backend-es/test/snapshots/src/Snapshot.Tco05.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.Tco05.purs rename to backend-es/test/snapshots/src/Snapshot.Tco05.purs diff --git a/backend-es/test/snapshots/Snapshot.Tco06.purs b/backend-es/test/snapshots/src/Snapshot.Tco06.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.Tco06.purs rename to backend-es/test/snapshots/src/Snapshot.Tco06.purs diff --git a/backend-es/test/snapshots/Snapshot.TopLevelHygiene01.purs b/backend-es/test/snapshots/src/Snapshot.TopLevelHygiene01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.TopLevelHygiene01.purs rename to backend-es/test/snapshots/src/Snapshot.TopLevelHygiene01.purs diff --git a/backend-es/test/snapshots/Snapshot.TopLevelHygiene02.purs b/backend-es/test/snapshots/src/Snapshot.TopLevelHygiene02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.TopLevelHygiene02.purs rename to backend-es/test/snapshots/src/Snapshot.TopLevelHygiene02.purs diff --git a/backend-es/test/snapshots/Snapshot.UncurriedEffectFns01.purs b/backend-es/test/snapshots/src/Snapshot.UncurriedEffectFns01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.UncurriedEffectFns01.purs rename to backend-es/test/snapshots/src/Snapshot.UncurriedEffectFns01.purs diff --git a/backend-es/test/snapshots/Snapshot.UncurriedEffectFns02.purs b/backend-es/test/snapshots/src/Snapshot.UncurriedEffectFns02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.UncurriedEffectFns02.purs rename to backend-es/test/snapshots/src/Snapshot.UncurriedEffectFns02.purs diff --git a/backend-es/test/snapshots/Snapshot.UncurriedFns01.purs b/backend-es/test/snapshots/src/Snapshot.UncurriedFns01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.UncurriedFns01.purs rename to backend-es/test/snapshots/src/Snapshot.UncurriedFns01.purs diff --git a/backend-es/test/snapshots/Snapshot.UncurriedLocalAbs01.purs b/backend-es/test/snapshots/src/Snapshot.UncurriedLocalAbs01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.UncurriedLocalAbs01.purs rename to backend-es/test/snapshots/src/Snapshot.UncurriedLocalAbs01.purs diff --git a/backend-es/test/snapshots/Snapshot.UncurriedSTFns01.purs b/backend-es/test/snapshots/src/Snapshot.UncurriedSTFns01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.UncurriedSTFns01.purs rename to backend-es/test/snapshots/src/Snapshot.UncurriedSTFns01.purs diff --git a/backend-es/test/snapshots/Snapshot.UncurriedSTFns02.purs b/backend-es/test/snapshots/src/Snapshot.UncurriedSTFns02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.UncurriedSTFns02.purs rename to backend-es/test/snapshots/src/Snapshot.UncurriedSTFns02.purs diff --git a/backend-es/test/snapshots/Snapshot.UnpackArray01.purs b/backend-es/test/snapshots/src/Snapshot.UnpackArray01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.UnpackArray01.purs rename to backend-es/test/snapshots/src/Snapshot.UnpackArray01.purs diff --git a/backend-es/test/snapshots/Snapshot.UnsafePerformEffect.purs b/backend-es/test/snapshots/src/Snapshot.UnsafePerformEffect.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.UnsafePerformEffect.purs rename to backend-es/test/snapshots/src/Snapshot.UnsafePerformEffect.purs diff --git a/backend-es/test/snapshots/Snapshot.VanLaarhovenTraversals01.purs b/backend-es/test/snapshots/src/Snapshot.VanLaarhovenTraversals01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.VanLaarhovenTraversals01.purs rename to backend-es/test/snapshots/src/Snapshot.VanLaarhovenTraversals01.purs diff --git a/backend-es/test/snapshots/Snapshot.Variant01.purs b/backend-es/test/snapshots/src/Snapshot.Variant01.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.Variant01.purs rename to backend-es/test/snapshots/src/Snapshot.Variant01.purs diff --git a/backend-es/test/snapshots/Snapshot.Variant02.purs b/backend-es/test/snapshots/src/Snapshot.Variant02.purs similarity index 100% rename from backend-es/test/snapshots/Snapshot.Variant02.purs rename to backend-es/test/snapshots/src/Snapshot.Variant02.purs diff --git a/backend-es/test/Main.purs b/backend-es/test/src/Main.purs similarity index 88% rename from backend-es/test/Main.purs rename to backend-es/test/src/Main.purs index 4bafa0e3..304de2b1 100644 --- a/backend-es/test/Main.purs +++ b/backend-es/test/src/Main.purs @@ -1,10 +1,19 @@ -module Test.Main where +module Test.Main + ( TraceChoice(..) + , argParser + , hasFails + , main + , matchesFail + , runSnapshotTests + ) + where import Prelude import Ansi.Codes (Color(..)) import Ansi.Output (foreground, withGraphics) import ArgParse.Basic (ArgParser) +import Data.List as List import ArgParse.Basic as ArgParser import Data.Array (findMap) import Data.Array as Array @@ -100,23 +109,27 @@ main = do runSnapshotTests :: TestArgs -> Aff Unit runSnapshotTests { accept, filter, traceIdents } = do - liftEffect $ Process.chdir $ Path.concat [ "backend-es", "test", "snapshots" ] - spawnFromParent "spago" [ "build -u \"-g corefn\"" ] + -- liftEffect $ Process.chdir $ Path.concat [ "test", "snapshots" ] + -- liftEffect $ Process.chdir $ Path.concat [ ".." ] + -- spawnFromParent "spago" [ "build --purs-args \"-g corefn\"" ] + liftEffect $ Process.chdir $ Path.concat [ ".." ] + baseDir <- liftEffect Process.cwd + liftEffect $ Process.chdir $ Path.concat [ "backend-es", "test", "snapshots", "src" ] snapshotDir <- liftEffect Process.cwd snapshotPaths <- expandGlobsCwd [ "Snapshot.*.purs" ] outputRef <- liftEffect $ Ref.new Map.empty - let snapshotsOut = Path.concat [ "..", "snapshots-out" ] - let testOut = Path.concat [ "..", "test-out" ] + let snapshotsOut = Path.concat [ "..", "..", "snapshots-out" ] + let testOut = Path.concat [ "..", "..", "test-out" ] mkdirp snapshotsOut mkdirp testOut - coreFnModulesFromOutput "output" filter >>= case _ of + coreFnModulesFromOutput (Path.concat [ "..", "..","..","..", "output" ]) filter >>= case _ of Left errors -> do for_ errors \(Tuple filePath err) -> do Console.error $ filePath <> " " <> err liftEffect $ Process.exit 1 Right coreFnModules -> do let { directives } = parseDirectiveFile defaultDirectives - copyFile (Path.concat [ "..", "..", "runtime.js" ]) (Path.concat [ testOut, "runtime.js" ]) + copyFile (Path.concat [ "..", "..", "..", "runtime.js" ]) (Path.concat [ testOut, "runtime.js" ]) stepsRef <- liftEffect $ Ref.new [] coreFnModules # buildModules { directives @@ -131,10 +144,11 @@ runSnapshotTests { accept, filter, traceIdents } = do mkdirp testFileDir FS.writeTextFile UTF8 testFilePath formatted unless (Set.isEmpty backendMod.foreign) do - let foreignSiblingPath = fromMaybe path (String.stripSuffix (Pattern (Path.extname path)) path) <> ".js" + let foreignSiblingPath = Path.concat [ "..","..","..","..",fromMaybe path (String.stripSuffix (Pattern (Path.extname path)) path) <> ".js"] let foreignOutputPath = Path.concat [ testFileDir, "foreign.js" ] copyFile foreignSiblingPath foreignOutputPath - when (Set.member (Path.concat [ snapshotDir, path ]) snapshotPaths) do + -- Console.logShow { pth: Path.concat [ snapshotDir, path ], baseDir, path} + when (Set.member (Path.concat [ baseDir, path ]) snapshotPaths) do void $ liftEffect $ Ref.modify (Map.insert name (Tuple formatted (hasFails backendMod))) outputRef unless (Array.null optimizationSteps) do liftEffect $ Ref.modify_ (flip Array.snoc (Tuple backendMod.name optimizationSteps)) stepsRef diff --git a/backend-es/test/Utils.js b/backend-es/test/src/Utils.js similarity index 100% rename from backend-es/test/Utils.js rename to backend-es/test/src/Utils.js diff --git a/backend-es/test/Utils.purs b/backend-es/test/src/Utils.purs similarity index 100% rename from backend-es/test/Utils.purs rename to backend-es/test/src/Utils.purs From 43f3f63e7afba2dcdaebcfd425d2c90a9eedac2b Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Thu, 20 Jul 2023 23:49:07 +0300 Subject: [PATCH 06/34] Changes ci --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bc4814a2..64d4134a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,10 +48,10 @@ jobs: run: spago install - name: Build project - run: spago build --purs-args '--censor-lib --strict' + run: spago build --censor-build-warnings dependency --strict - name: Run snapshots - run: spago test --purs-args '--censor-lib' + run: spago test --censor-build-warnings dependency - name: Check formatting (Linux only) if: matrix.os == 'ubuntu-latest' From 615b56db4cc34aea2f3959620659ecb1992d4854 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Fri, 21 Jul 2023 09:50:52 +0300 Subject: [PATCH 07/34] Reorganizes dir structure --- backend-es/spago.yaml | 11 ++++- backend-es/test/snapshots/.gitignore | 8 ---- lib/spago.yaml | 46 +++++++++++++++++++ .../Backend/Optimizer/Analysis.purs | 0 .../PureScript/Backend/Optimizer/Builder.purs | 0 .../Backend/Optimizer/Codegen/Tco.purs | 0 .../PureScript/Backend/Optimizer/Convert.purs | 0 .../PureScript/Backend/Optimizer/CoreFn.purs | 0 .../Backend/Optimizer/CoreFn/Json.purs | 0 .../Backend/Optimizer/CoreFn/Sort.purs | 0 .../PureScript/Backend/Optimizer/Debug.js | 0 .../PureScript/Backend/Optimizer/Debug.purs | 0 .../Backend/Optimizer/Directives.purs | 0 .../Optimizer/Directives/Defaults.purs | 0 .../Backend/Optimizer/Semantics.purs | 0 .../Backend/Optimizer/Semantics/Foreign.purs | 0 .../PureScript/Backend/Optimizer/Syntax.purs | 0 .../Backend/Optimizer/Tracer/Printer.purs | 0 .../PureScript/Backend/Optimizer/Utils.purs | 0 packages.dhall | 27 ----------- snapshots/spago.yaml | 33 +++++++++++++ .../snapshots => snapshots}/src/Assert.purs | 0 .../src/Snapshot.BackendSemantics01.purs | 0 .../src/Snapshot.BackendSemantics02.purs | 0 .../src/Snapshot.BranchSpecialization01.purs | 0 .../Snapshot.CaptureDerefRegression01.purs | 0 .../src/Snapshot.CaseCtorNewtype.purs | 0 .../src/Snapshot.CaseCtorProduct.purs | 0 .../src/Snapshot.CaseCtorSum.purs | 0 .../src/Snapshot.CaseGrafting.purs | 0 .../src/Snapshot.CaseGuarded.purs | 0 .../src/Snapshot.CaseHeuristics.purs | 0 .../src/Snapshot.CaseJacobs.purs | 0 .../src/Snapshot.CaseLeafTco.purs | 0 .../src/Snapshot.CaseLitArray.purs | 0 .../src/Snapshot.CaseLitBoolean.purs | 0 .../src/Snapshot.CaseLitChar.purs | 0 .../src/Snapshot.CaseLitInt.purs | 0 .../src/Snapshot.CaseLitNumber.purs | 0 .../src/Snapshot.CaseLitRecord.purs | 0 .../src/Snapshot.CaseLitString.purs | 0 .../src/Snapshot.CaseMulti.purs | 0 .../src/Snapshot.CaseNamed.purs | 0 .../src/Snapshot.CasePartial.purs | 0 .../src/Snapshot.CaseRedBlackTree.purs | 0 .../src/Snapshot.ConvertableOptions01.purs | 0 .../src/Snapshot.Cps01.purs | 0 .../src/Snapshot.Cps02.purs | 0 .../src/Snapshot.DefaultRulesEq01.purs | 0 .../src/Snapshot.DefaultRulesEq02.purs | 0 .../src/Snapshot.DefaultRulesFunction01.purs | 0 .../src/Snapshot.DefaultRulesFunctor01.purs | 0 .../src/Snapshot.DefaultRulesMonoid01.purs | 0 .../src/Snapshot.DefaultRulesSemigroup.purs | 0 .../src/Snapshot.DefaultRulesSemigroup02.purs | 0 .../src/Snapshot.EffectBind01.purs | 0 .../src/Snapshot.EffectBind02.purs | 0 .../src/Snapshot.EffectBind03.purs | 0 .../src/Snapshot.EffectBind04.purs | 0 .../src/Snapshot.EffectBind05.purs | 0 .../src/Snapshot.EffectBind06.purs | 0 .../src/Snapshot.EffectBind07.purs | 0 .../src/Snapshot.EffectBind08.purs | 0 .../src/Snapshot.EffectBind09.purs | 0 .../src/Snapshot.EffectLoops01.purs | 0 .../src/Snapshot.EffectLoops02.purs | 0 .../src/Snapshot.EffectLoops03.purs | 0 .../src/Snapshot.EffectPure01.purs | 0 .../src/Snapshot.EffectRefs01.purs | 0 .../src/Snapshot.EffectRefs02.purs | 0 .../src/Snapshot.EffectUnsafe01.purs | 0 .../src/Snapshot.EsPrecedence01.purs | 0 .../src/Snapshot.EsPrecedence02.purs | 0 .../src/Snapshot.EsPrecedence03.purs | 0 .../src/Snapshot.EscapeIdentifiers.purs | 0 .../src/Snapshot.EtaReduceRegression01.purs | 0 .../src/Snapshot.FunctionCompose01.purs | 0 .../src/Snapshot.FunctionCompose02.purs | 0 .../src/Snapshot.FunctionCompose03.purs | 0 .../src/Snapshot.Fusion01.purs | 0 .../src/Snapshot.Fusion02.purs | 0 .../src/Snapshot.HalogenVDomST01.purs | 0 .../src/Snapshot.HalogenVDomST02.purs | 0 .../src/Snapshot.HelloWorld01.purs | 0 .../src/Snapshot.Heterogeneous01.purs | 0 .../src/Snapshot.Html.purs | 0 .../src/Snapshot.InlineArrayIndex.purs | 0 .../src/Snapshot.InlineCase01.purs | 0 .../src/Snapshot.InlineCase02.purs | 0 .../Snapshot.InlineDirectivePropSpine01.purs | 0 .../Snapshot.InlineDirectivePropSpine02.purs | 0 ...hot.InlineLocalReferenceOpArrayLength.purs | 0 .../Snapshot.InlineLocalReferenceOpIsTag.purs | 0 .../src/Snapshot.InlineNever.purs | 0 .../src/Snapshot.KnownConstructor07.purs | 0 .../src/Snapshot.KnownConstructors01.purs | 0 .../src/Snapshot.KnownConstructors02.purs | 0 .../src/Snapshot.KnownConstructors03.purs | 0 .../src/Snapshot.KnownConstructors04.purs | 0 .../src/Snapshot.KnownConstructors05.purs | 0 .../src/Snapshot.KnownConstructors06.purs | 0 .../src/Snapshot.Object01.purs | 0 .../src/Snapshot.PrimOpArray01.purs | 0 .../src/Snapshot.PrimOpBoolean01.purs | 0 .../src/Snapshot.PrimOpBoolean02.purs | 0 .../src/Snapshot.PrimOpChar01.purs | 0 .../src/Snapshot.PrimOpChar02.purs | 0 .../src/Snapshot.PrimOpInt01.purs | 0 .../src/Snapshot.PrimOpInt02.purs | 0 .../src/Snapshot.PrimOpIntBit01.purs | 0 .../src/Snapshot.PrimOpIntBit02.purs | 0 .../src/Snapshot.PrimOpNumber01.purs | 0 .../src/Snapshot.PrimOpNumber02.purs | 0 .../src/Snapshot.PrimOpString01.purs | 0 .../src/Snapshot.PrimOpString02.purs | 0 .../src/Snapshot.PrimOpString03.purs | 0 .../src/Snapshot.ProfunctorLenses01.purs | 0 .../src/Snapshot.ProfunctorLenses02.purs | 0 .../src/Snapshot.RecordUnion01.purs | 0 .../src/Snapshot.RecursionSchemes01.purs | 0 .../src/Snapshot.RecursiveBindingGroup01.purs | 0 .../src/Snapshot.RecursiveBindingGroup02.purs | 0 .../src/Snapshot.STArray01.purs | 0 .../src/Snapshot.STArray02.purs | 0 .../src/Snapshot.STArray03.purs | 0 .../src/Snapshot.STArray04.purs | 0 .../src/Snapshot.STLoops01.purs | 0 .../src/Snapshot.STLoops02.purs | 0 .../src/Snapshot.STLoops03.purs | 0 .../src/Snapshot.STObject01.purs | 0 .../src/Snapshot.STRun01.purs | 0 .../src/Snapshot.ShowLiterals.purs | 0 .../src/Snapshot.StringLiteral01.purs | 0 .../src/Snapshot.Tco01.purs | 0 .../src/Snapshot.Tco02.purs | 0 .../src/Snapshot.Tco03.purs | 0 .../src/Snapshot.Tco04.purs | 0 .../src/Snapshot.Tco05.purs | 0 .../src/Snapshot.Tco06.purs | 0 .../src/Snapshot.TopLevelHygiene01.purs | 0 .../src/Snapshot.TopLevelHygiene02.purs | 0 .../src/Snapshot.UncurriedEffectFns01.purs | 0 .../src/Snapshot.UncurriedEffectFns02.purs | 0 .../src/Snapshot.UncurriedFns01.purs | 0 .../src/Snapshot.UncurriedLocalAbs01.purs | 0 .../src/Snapshot.UncurriedSTFns01.purs | 0 .../src/Snapshot.UncurriedSTFns02.purs | 0 .../src/Snapshot.UnpackArray01.purs | 0 .../src/Snapshot.UnsafePerformEffect.purs | 0 .../Snapshot.VanLaarhovenTraversals01.purs | 0 .../src/Snapshot.Variant01.purs | 0 .../src/Snapshot.Variant02.purs | 0 spago.yaml | 46 ------------------- test/.gitignore | 1 + .../snapshots-out/.gitattributes | 0 .../Snapshot.BackendSemantics01.js | 0 .../Snapshot.BackendSemantics02.js | 0 .../Snapshot.BranchSpecialization01.js | 0 .../Snapshot.CaptureDerefRegression01.js | 0 .../snapshots-out/Snapshot.CaseArray.js | 0 .../snapshots-out/Snapshot.CaseBoolean.js | 0 .../snapshots-out/Snapshot.CaseChar.js | 0 .../snapshots-out/Snapshot.CaseGrafting.js | 0 .../snapshots-out/Snapshot.CaseGuarded.js | 0 .../snapshots-out/Snapshot.CaseHeuristics.js | 0 .../snapshots-out/Snapshot.CaseInt.js | 0 .../snapshots-out/Snapshot.CaseJacobs.js | 0 .../snapshots-out/Snapshot.CaseLeafTco.js | 0 .../snapshots-out/Snapshot.CaseMulti.js | 0 .../snapshots-out/Snapshot.CaseNamed.js | 0 .../snapshots-out/Snapshot.CaseNewtype.js | 0 .../snapshots-out/Snapshot.CaseNumber.js | 0 .../snapshots-out/Snapshot.CasePartial.js | 0 .../snapshots-out/Snapshot.CaseProduct.js | 0 .../snapshots-out/Snapshot.CaseRecord.js | 0 .../Snapshot.CaseRedBlackTree.js | 0 .../snapshots-out/Snapshot.CaseString.js | 0 .../snapshots-out/Snapshot.CaseSum.js | 0 .../Snapshot.ConvertableOptions01.js | 0 .../snapshots-out/Snapshot.Cps01.js | 0 .../snapshots-out/Snapshot.Cps02.js | 0 .../Snapshot.DefaultRulesEq01.js | 0 .../Snapshot.DefaultRulesEq02.js | 0 .../Snapshot.DefaultRulesFunction01.js | 0 .../Snapshot.DefaultRulesFunctor01.js | 0 .../Snapshot.DefaultRulesMonoid01.js | 0 .../Snapshot.DefaultRulesSemigroup01.js | 0 .../Snapshot.DefaultRulesSemigroup02.js | 0 .../snapshots-out/Snapshot.EffectBind01.js | 0 .../snapshots-out/Snapshot.EffectBind02.js | 0 .../snapshots-out/Snapshot.EffectBind03.js | 0 .../snapshots-out/Snapshot.EffectBind04.js | 0 .../snapshots-out/Snapshot.EffectBind05.js | 0 .../snapshots-out/Snapshot.EffectBind06.js | 0 .../snapshots-out/Snapshot.EffectBind07.js | 0 .../snapshots-out/Snapshot.EffectBind08.js | 0 .../snapshots-out/Snapshot.EffectBind09.js | 0 .../snapshots-out/Snapshot.EffectLoops01.js | 0 .../snapshots-out/Snapshot.EffectLoops02.js | 0 .../snapshots-out/Snapshot.EffectLoops03.js | 0 .../snapshots-out/Snapshot.EffectPure01.js | 0 .../snapshots-out/Snapshot.EffectRefs01.js | 0 .../snapshots-out/Snapshot.EffectRefs02.js | 0 .../snapshots-out/Snapshot.EffectUnsafe01.js | 0 .../snapshots-out/Snapshot.EsPrecedence01.js | 0 .../snapshots-out/Snapshot.EsPrecedence02.js | 0 .../snapshots-out/Snapshot.EsPrecedence03.js | 0 .../Snapshot.EscapeIdentifiers.js | 0 .../Snapshot.EtaReduceRegression01.js | 0 .../Snapshot.FunctionCompose01.js | 0 .../Snapshot.FunctionCompose02.js | 0 .../Snapshot.FunctionCompose03.js | 0 .../snapshots-out/Snapshot.Fusion01.js | 0 .../snapshots-out/Snapshot.Fusion02.js | 0 .../snapshots-out/Snapshot.HalogenVDomST01.js | 0 .../snapshots-out/Snapshot.HalogenVDomST02.js | 0 .../snapshots-out/Snapshot.HelloWorld01.js | 0 .../snapshots-out/Snapshot.Heterogeneous01.js | 0 .../snapshots-out/Snapshot.Html.js | 0 .../Snapshot.InlineArrayIndex.js | 0 .../snapshots-out/Snapshot.InlineCase01.js | 0 .../snapshots-out/Snapshot.InlineCase02.js | 0 .../Snapshot.InlineDirectivePropSpine01.js | 0 .../Snapshot.InlineDirectivePropSpine02.js | 0 ...pshot.InlineLocalReferenceOpArrayLength.js | 0 .../Snapshot.InlineLocalReferenceOpIsTag.js | 0 .../snapshots-out/Snapshot.InlineNever.js | 0 .../Snapshot.KnownConstructor07.js | 0 .../Snapshot.KnownConstructors01.js | 0 .../Snapshot.KnownConstructors02.js | 0 .../Snapshot.KnownConstructors03.js | 0 .../Snapshot.KnownConstructors04.js | 0 .../Snapshot.KnownConstructors05.js | 0 .../Snapshot.KnownConstructors06.js | 0 .../snapshots-out/Snapshot.Object01.js | 0 .../snapshots-out/Snapshot.PrimOpArray01.js | 0 .../snapshots-out/Snapshot.PrimOpBoolean01.js | 0 .../snapshots-out/Snapshot.PrimOpBoolean02.js | 0 .../snapshots-out/Snapshot.PrimOpChar01.js | 0 .../snapshots-out/Snapshot.PrimOpChar02.js | 0 .../snapshots-out/Snapshot.PrimOpInt01.js | 0 .../snapshots-out/Snapshot.PrimOpInt02.js | 0 .../snapshots-out/Snapshot.PrimOpIntBit01.js | 0 .../snapshots-out/Snapshot.PrimOpIntBit02.js | 0 .../snapshots-out/Snapshot.PrimOpNumber01.js | 0 .../snapshots-out/Snapshot.PrimOpNumber02.js | 0 .../snapshots-out/Snapshot.PrimOpString01.js | 0 .../snapshots-out/Snapshot.PrimOpString02.js | 0 .../snapshots-out/Snapshot.PrimOpString03.js | 0 .../Snapshot.ProfunctorLenses01.js | 0 .../Snapshot.ProfunctorLenses02.js | 0 .../snapshots-out/Snapshot.RecordUnion01.js | 0 .../Snapshot.RecursionSchemes01.js | 0 .../Snapshot.RecursiveBindingGroup01.js | 0 .../Snapshot.RecursiveBindingGroup02.js | 0 .../snapshots-out/Snapshot.STArray01.js | 0 .../snapshots-out/Snapshot.STArray02.js | 0 .../snapshots-out/Snapshot.STArray03.js | 0 .../snapshots-out/Snapshot.STArray04.js | 0 .../snapshots-out/Snapshot.STLoops01.js | 0 .../snapshots-out/Snapshot.STLoops02.js | 0 .../snapshots-out/Snapshot.STLoops03.js | 0 .../snapshots-out/Snapshot.STObject01.js | 0 .../snapshots-out/Snapshot.STRun01.js | 0 .../snapshots-out/Snapshot.ShowLiterals.js | 0 .../snapshots-out/Snapshot.StringLiteral01.js | 0 .../snapshots-out/Snapshot.Tco01.js | 0 .../snapshots-out/Snapshot.Tco02.js | 0 .../snapshots-out/Snapshot.Tco03.js | 0 .../snapshots-out/Snapshot.Tco04.js | 0 .../snapshots-out/Snapshot.Tco05.js | 0 .../snapshots-out/Snapshot.Tco06.js | 0 .../Snapshot.TopLevelHygiene01.js | 0 .../Snapshot.TopLevelHygiene02.js | 0 .../Snapshot.UncurriedEffectFns01.js | 0 .../Snapshot.UncurriedEffectFns02.js | 0 .../snapshots-out/Snapshot.UncurriedFns01.js | 0 .../Snapshot.UncurriedLocalAbs01.js | 0 .../Snapshot.UncurriedSTFns01.js | 0 .../Snapshot.UncurriedSTFns02.js | 0 .../snapshots-out/Snapshot.UnpackArray01.js | 0 .../Snapshot.UnsafePerformEffect.js | 0 .../Snapshot.VanLaarhovenTraversals01.js | 0 .../snapshots-out/Snapshot.Variant01.js | 0 .../snapshots-out/Snapshot.Variant02.js | 0 test/spago.yaml | 7 +++ {backend-es/test => test}/src/Main.purs | 5 +- {backend-es/test => test}/src/Utils.js | 0 {backend-es/test => test}/src/Utils.purs | 0 289 files changed, 99 insertions(+), 85 deletions(-) delete mode 100644 backend-es/test/snapshots/.gitignore create mode 100644 lib/spago.yaml rename {src => lib/src}/PureScript/Backend/Optimizer/Analysis.purs (100%) rename {src => lib/src}/PureScript/Backend/Optimizer/Builder.purs (100%) rename {src => lib/src}/PureScript/Backend/Optimizer/Codegen/Tco.purs (100%) rename {src => lib/src}/PureScript/Backend/Optimizer/Convert.purs (100%) rename {src => lib/src}/PureScript/Backend/Optimizer/CoreFn.purs (100%) rename {src => lib/src}/PureScript/Backend/Optimizer/CoreFn/Json.purs (100%) rename {src => lib/src}/PureScript/Backend/Optimizer/CoreFn/Sort.purs (100%) rename {src => lib/src}/PureScript/Backend/Optimizer/Debug.js (100%) rename {src => lib/src}/PureScript/Backend/Optimizer/Debug.purs (100%) rename {src => lib/src}/PureScript/Backend/Optimizer/Directives.purs (100%) rename {src => lib/src}/PureScript/Backend/Optimizer/Directives/Defaults.purs (100%) rename {src => lib/src}/PureScript/Backend/Optimizer/Semantics.purs (100%) rename {src => lib/src}/PureScript/Backend/Optimizer/Semantics/Foreign.purs (100%) rename {src => lib/src}/PureScript/Backend/Optimizer/Syntax.purs (100%) rename {src => lib/src}/PureScript/Backend/Optimizer/Tracer/Printer.purs (100%) rename {src => lib/src}/PureScript/Backend/Optimizer/Utils.purs (100%) delete mode 100644 packages.dhall create mode 100644 snapshots/spago.yaml rename {backend-es/test/snapshots => snapshots}/src/Assert.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.BackendSemantics01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.BackendSemantics02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.BranchSpecialization01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.CaptureDerefRegression01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.CaseCtorNewtype.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.CaseCtorProduct.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.CaseCtorSum.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.CaseGrafting.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.CaseGuarded.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.CaseHeuristics.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.CaseJacobs.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.CaseLeafTco.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.CaseLitArray.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.CaseLitBoolean.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.CaseLitChar.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.CaseLitInt.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.CaseLitNumber.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.CaseLitRecord.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.CaseLitString.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.CaseMulti.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.CaseNamed.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.CasePartial.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.CaseRedBlackTree.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.ConvertableOptions01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.Cps01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.Cps02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.DefaultRulesEq01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.DefaultRulesEq02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.DefaultRulesFunction01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.DefaultRulesFunctor01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.DefaultRulesMonoid01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.DefaultRulesSemigroup.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.DefaultRulesSemigroup02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.EffectBind01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.EffectBind02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.EffectBind03.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.EffectBind04.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.EffectBind05.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.EffectBind06.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.EffectBind07.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.EffectBind08.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.EffectBind09.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.EffectLoops01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.EffectLoops02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.EffectLoops03.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.EffectPure01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.EffectRefs01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.EffectRefs02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.EffectUnsafe01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.EsPrecedence01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.EsPrecedence02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.EsPrecedence03.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.EscapeIdentifiers.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.EtaReduceRegression01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.FunctionCompose01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.FunctionCompose02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.FunctionCompose03.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.Fusion01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.Fusion02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.HalogenVDomST01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.HalogenVDomST02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.HelloWorld01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.Heterogeneous01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.Html.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.InlineArrayIndex.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.InlineCase01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.InlineCase02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.InlineDirectivePropSpine01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.InlineDirectivePropSpine02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.InlineLocalReferenceOpArrayLength.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.InlineLocalReferenceOpIsTag.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.InlineNever.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.KnownConstructor07.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.KnownConstructors01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.KnownConstructors02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.KnownConstructors03.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.KnownConstructors04.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.KnownConstructors05.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.KnownConstructors06.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.Object01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.PrimOpArray01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.PrimOpBoolean01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.PrimOpBoolean02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.PrimOpChar01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.PrimOpChar02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.PrimOpInt01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.PrimOpInt02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.PrimOpIntBit01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.PrimOpIntBit02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.PrimOpNumber01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.PrimOpNumber02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.PrimOpString01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.PrimOpString02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.PrimOpString03.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.ProfunctorLenses01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.ProfunctorLenses02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.RecordUnion01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.RecursionSchemes01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.RecursiveBindingGroup01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.RecursiveBindingGroup02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.STArray01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.STArray02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.STArray03.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.STArray04.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.STLoops01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.STLoops02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.STLoops03.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.STObject01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.STRun01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.ShowLiterals.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.StringLiteral01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.Tco01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.Tco02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.Tco03.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.Tco04.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.Tco05.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.Tco06.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.TopLevelHygiene01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.TopLevelHygiene02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.UncurriedEffectFns01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.UncurriedEffectFns02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.UncurriedFns01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.UncurriedLocalAbs01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.UncurriedSTFns01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.UncurriedSTFns02.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.UnpackArray01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.UnsafePerformEffect.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.VanLaarhovenTraversals01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.Variant01.purs (100%) rename {backend-es/test/snapshots => snapshots}/src/Snapshot.Variant02.purs (100%) create mode 100644 test/.gitignore rename {backend-es/test => test}/snapshots-out/.gitattributes (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.BackendSemantics01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.BackendSemantics02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.BranchSpecialization01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.CaptureDerefRegression01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.CaseArray.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.CaseBoolean.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.CaseChar.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.CaseGrafting.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.CaseGuarded.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.CaseHeuristics.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.CaseInt.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.CaseJacobs.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.CaseLeafTco.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.CaseMulti.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.CaseNamed.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.CaseNewtype.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.CaseNumber.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.CasePartial.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.CaseProduct.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.CaseRecord.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.CaseRedBlackTree.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.CaseString.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.CaseSum.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.ConvertableOptions01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.Cps01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.Cps02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.DefaultRulesEq01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.DefaultRulesEq02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.DefaultRulesFunction01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.DefaultRulesFunctor01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.DefaultRulesMonoid01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.DefaultRulesSemigroup01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.DefaultRulesSemigroup02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.EffectBind01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.EffectBind02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.EffectBind03.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.EffectBind04.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.EffectBind05.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.EffectBind06.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.EffectBind07.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.EffectBind08.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.EffectBind09.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.EffectLoops01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.EffectLoops02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.EffectLoops03.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.EffectPure01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.EffectRefs01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.EffectRefs02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.EffectUnsafe01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.EsPrecedence01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.EsPrecedence02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.EsPrecedence03.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.EscapeIdentifiers.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.EtaReduceRegression01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.FunctionCompose01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.FunctionCompose02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.FunctionCompose03.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.Fusion01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.Fusion02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.HalogenVDomST01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.HalogenVDomST02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.HelloWorld01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.Heterogeneous01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.Html.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.InlineArrayIndex.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.InlineCase01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.InlineCase02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.InlineDirectivePropSpine01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.InlineDirectivePropSpine02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.InlineLocalReferenceOpArrayLength.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.InlineLocalReferenceOpIsTag.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.InlineNever.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.KnownConstructor07.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.KnownConstructors01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.KnownConstructors02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.KnownConstructors03.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.KnownConstructors04.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.KnownConstructors05.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.KnownConstructors06.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.Object01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.PrimOpArray01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.PrimOpBoolean01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.PrimOpBoolean02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.PrimOpChar01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.PrimOpChar02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.PrimOpInt01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.PrimOpInt02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.PrimOpIntBit01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.PrimOpIntBit02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.PrimOpNumber01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.PrimOpNumber02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.PrimOpString01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.PrimOpString02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.PrimOpString03.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.ProfunctorLenses01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.ProfunctorLenses02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.RecordUnion01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.RecursionSchemes01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.RecursiveBindingGroup01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.RecursiveBindingGroup02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.STArray01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.STArray02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.STArray03.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.STArray04.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.STLoops01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.STLoops02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.STLoops03.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.STObject01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.STRun01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.ShowLiterals.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.StringLiteral01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.Tco01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.Tco02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.Tco03.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.Tco04.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.Tco05.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.Tco06.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.TopLevelHygiene01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.TopLevelHygiene02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.UncurriedEffectFns01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.UncurriedEffectFns02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.UncurriedFns01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.UncurriedLocalAbs01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.UncurriedSTFns01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.UncurriedSTFns02.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.UnpackArray01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.UnsafePerformEffect.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.VanLaarhovenTraversals01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.Variant01.js (100%) rename {backend-es/test => test}/snapshots-out/Snapshot.Variant02.js (100%) create mode 100644 test/spago.yaml rename {backend-es/test => test}/src/Main.purs (98%) rename {backend-es/test => test}/src/Utils.js (100%) rename {backend-es/test => test}/src/Utils.purs (100%) diff --git a/backend-es/spago.yaml b/backend-es/spago.yaml index 36fbfeb1..fe1b159b 100644 --- a/backend-es/spago.yaml +++ b/backend-es/spago.yaml @@ -10,7 +10,16 @@ package: - "aff" - "lib-backend-optimizer" - "external-backend-optimizer" - - "test-backend-optimizer" - "snapshots-backend-optimizer" pursArgs: - "-g corefn" + extra_packages: + "dodo-printer": + dependencies: + - "ansi" + - "foldable-traversable" + - "lists" + - "maybe" + - "strings" + repo: "https://github.com/natefaubion/purescript-dodo-printer.git" + version: "v2.2.1" diff --git a/backend-es/test/snapshots/.gitignore b/backend-es/test/snapshots/.gitignore deleted file mode 100644 index 8b817893..00000000 --- a/backend-es/test/snapshots/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -/output/ -/output-es -/.psc-package/ -/.psc* -/.purs* -/.psa* -/.spago -/**/.DS_Store diff --git a/lib/spago.yaml b/lib/spago.yaml new file mode 100644 index 00000000..d8749518 --- /dev/null +++ b/lib/spago.yaml @@ -0,0 +1,46 @@ +package: + name: "lib-backend-optimizer" + dependencies: + - "aff" + - "ansi" + - "argonaut" + - "argonaut-codecs" + - "argparse-basic" + - "arrays" + - "bifunctors" + - "console" + - "control" + - "debug" + - "dodo-printer" + - "effect" + - "either" + - "enums" + - "filterable" + - "foldable-traversable" + - "foreign-object" + - "free" + - "integers" + - "language-cst-parser" + - "lazy" + - "lists" + - "maybe" + - "newtype" + - "node-buffer" + - "node-child-process" + - "node-fs" + - "node-fs-aff" + - "node-glob-basic" + - "node-path" + - "node-process" + - "node-streams" + - "ordered-collections" + - "parallel" + - "partial" + - "posix-types" + - "prelude" + - "refs" + - "safe-coerce" + - "strings" + - "transformers" + - "tuples" + - "unsafe-coerce" diff --git a/src/PureScript/Backend/Optimizer/Analysis.purs b/lib/src/PureScript/Backend/Optimizer/Analysis.purs similarity index 100% rename from src/PureScript/Backend/Optimizer/Analysis.purs rename to lib/src/PureScript/Backend/Optimizer/Analysis.purs diff --git a/src/PureScript/Backend/Optimizer/Builder.purs b/lib/src/PureScript/Backend/Optimizer/Builder.purs similarity index 100% rename from src/PureScript/Backend/Optimizer/Builder.purs rename to lib/src/PureScript/Backend/Optimizer/Builder.purs diff --git a/src/PureScript/Backend/Optimizer/Codegen/Tco.purs b/lib/src/PureScript/Backend/Optimizer/Codegen/Tco.purs similarity index 100% rename from src/PureScript/Backend/Optimizer/Codegen/Tco.purs rename to lib/src/PureScript/Backend/Optimizer/Codegen/Tco.purs diff --git a/src/PureScript/Backend/Optimizer/Convert.purs b/lib/src/PureScript/Backend/Optimizer/Convert.purs similarity index 100% rename from src/PureScript/Backend/Optimizer/Convert.purs rename to lib/src/PureScript/Backend/Optimizer/Convert.purs diff --git a/src/PureScript/Backend/Optimizer/CoreFn.purs b/lib/src/PureScript/Backend/Optimizer/CoreFn.purs similarity index 100% rename from src/PureScript/Backend/Optimizer/CoreFn.purs rename to lib/src/PureScript/Backend/Optimizer/CoreFn.purs diff --git a/src/PureScript/Backend/Optimizer/CoreFn/Json.purs b/lib/src/PureScript/Backend/Optimizer/CoreFn/Json.purs similarity index 100% rename from src/PureScript/Backend/Optimizer/CoreFn/Json.purs rename to lib/src/PureScript/Backend/Optimizer/CoreFn/Json.purs diff --git a/src/PureScript/Backend/Optimizer/CoreFn/Sort.purs b/lib/src/PureScript/Backend/Optimizer/CoreFn/Sort.purs similarity index 100% rename from src/PureScript/Backend/Optimizer/CoreFn/Sort.purs rename to lib/src/PureScript/Backend/Optimizer/CoreFn/Sort.purs diff --git a/src/PureScript/Backend/Optimizer/Debug.js b/lib/src/PureScript/Backend/Optimizer/Debug.js similarity index 100% rename from src/PureScript/Backend/Optimizer/Debug.js rename to lib/src/PureScript/Backend/Optimizer/Debug.js diff --git a/src/PureScript/Backend/Optimizer/Debug.purs b/lib/src/PureScript/Backend/Optimizer/Debug.purs similarity index 100% rename from src/PureScript/Backend/Optimizer/Debug.purs rename to lib/src/PureScript/Backend/Optimizer/Debug.purs diff --git a/src/PureScript/Backend/Optimizer/Directives.purs b/lib/src/PureScript/Backend/Optimizer/Directives.purs similarity index 100% rename from src/PureScript/Backend/Optimizer/Directives.purs rename to lib/src/PureScript/Backend/Optimizer/Directives.purs diff --git a/src/PureScript/Backend/Optimizer/Directives/Defaults.purs b/lib/src/PureScript/Backend/Optimizer/Directives/Defaults.purs similarity index 100% rename from src/PureScript/Backend/Optimizer/Directives/Defaults.purs rename to lib/src/PureScript/Backend/Optimizer/Directives/Defaults.purs diff --git a/src/PureScript/Backend/Optimizer/Semantics.purs b/lib/src/PureScript/Backend/Optimizer/Semantics.purs similarity index 100% rename from src/PureScript/Backend/Optimizer/Semantics.purs rename to lib/src/PureScript/Backend/Optimizer/Semantics.purs diff --git a/src/PureScript/Backend/Optimizer/Semantics/Foreign.purs b/lib/src/PureScript/Backend/Optimizer/Semantics/Foreign.purs similarity index 100% rename from src/PureScript/Backend/Optimizer/Semantics/Foreign.purs rename to lib/src/PureScript/Backend/Optimizer/Semantics/Foreign.purs diff --git a/src/PureScript/Backend/Optimizer/Syntax.purs b/lib/src/PureScript/Backend/Optimizer/Syntax.purs similarity index 100% rename from src/PureScript/Backend/Optimizer/Syntax.purs rename to lib/src/PureScript/Backend/Optimizer/Syntax.purs diff --git a/src/PureScript/Backend/Optimizer/Tracer/Printer.purs b/lib/src/PureScript/Backend/Optimizer/Tracer/Printer.purs similarity index 100% rename from src/PureScript/Backend/Optimizer/Tracer/Printer.purs rename to lib/src/PureScript/Backend/Optimizer/Tracer/Printer.purs diff --git a/src/PureScript/Backend/Optimizer/Utils.purs b/lib/src/PureScript/Backend/Optimizer/Utils.purs similarity index 100% rename from src/PureScript/Backend/Optimizer/Utils.purs rename to lib/src/PureScript/Backend/Optimizer/Utils.purs diff --git a/packages.dhall b/packages.dhall deleted file mode 100644 index 3bcc3d74..00000000 --- a/packages.dhall +++ /dev/null @@ -1,27 +0,0 @@ -let upstream = - https://github.com/purescript/package-sets/releases/download/psc-0.15.4-20221018/packages.dhall - sha256:b1db2e4a17260ace8d17858602f8c56f460982d6e404818d7f6cb9f053324bb1 -in upstream - with dodo-printer = - { dependencies = - [ "ansi", "foldable-traversable", "lists", "maybe", "strings" ] - , repo = "https://github.com/natefaubion/purescript-dodo-printer.git" - , version = "v2.2.1" - } - with node-glob-basic = - { dependencies = - [ "aff" - , "console" - , "effect" - , "lists" - , "maybe" - , "node-fs-aff" - , "node-path" - , "node-process" - , "ordered-collections" - , "strings" - ] - , repo = "https://github.com/natefaubion/purescript-node-glob-basic.git" - , version = "v1.2.2" - } - with arrays.version = "v7.2.1" diff --git a/snapshots/spago.yaml b/snapshots/spago.yaml new file mode 100644 index 00000000..0b7a947e --- /dev/null +++ b/snapshots/spago.yaml @@ -0,0 +1,33 @@ +package: + name: "snapshots-backend-optimizer" + dependencies: + - "arrays" + - "console" + - "convertable-options" + - "effect" + - "either" + - "exceptions" + - "exists" + - "foldable-traversable" + - "foreign-object" + - "functions" + - "heterogeneous" + - "identity" + - "integers" + - "lists" + - "maybe" + - "partial" + - "prelude" + - "profunctor-lenses" + - "record" + - "refs" + - "safe-coerce" + - "st" + - "strings" + - "tuples" + - "type-equality" + - "unsafe-coerce" + - "variant" +workspace: + package_set: + registry: 11.10.0 \ No newline at end of file diff --git a/backend-es/test/snapshots/src/Assert.purs b/snapshots/src/Assert.purs similarity index 100% rename from backend-es/test/snapshots/src/Assert.purs rename to snapshots/src/Assert.purs diff --git a/backend-es/test/snapshots/src/Snapshot.BackendSemantics01.purs b/snapshots/src/Snapshot.BackendSemantics01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.BackendSemantics01.purs rename to snapshots/src/Snapshot.BackendSemantics01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.BackendSemantics02.purs b/snapshots/src/Snapshot.BackendSemantics02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.BackendSemantics02.purs rename to snapshots/src/Snapshot.BackendSemantics02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.BranchSpecialization01.purs b/snapshots/src/Snapshot.BranchSpecialization01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.BranchSpecialization01.purs rename to snapshots/src/Snapshot.BranchSpecialization01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.CaptureDerefRegression01.purs b/snapshots/src/Snapshot.CaptureDerefRegression01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.CaptureDerefRegression01.purs rename to snapshots/src/Snapshot.CaptureDerefRegression01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.CaseCtorNewtype.purs b/snapshots/src/Snapshot.CaseCtorNewtype.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.CaseCtorNewtype.purs rename to snapshots/src/Snapshot.CaseCtorNewtype.purs diff --git a/backend-es/test/snapshots/src/Snapshot.CaseCtorProduct.purs b/snapshots/src/Snapshot.CaseCtorProduct.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.CaseCtorProduct.purs rename to snapshots/src/Snapshot.CaseCtorProduct.purs diff --git a/backend-es/test/snapshots/src/Snapshot.CaseCtorSum.purs b/snapshots/src/Snapshot.CaseCtorSum.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.CaseCtorSum.purs rename to snapshots/src/Snapshot.CaseCtorSum.purs diff --git a/backend-es/test/snapshots/src/Snapshot.CaseGrafting.purs b/snapshots/src/Snapshot.CaseGrafting.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.CaseGrafting.purs rename to snapshots/src/Snapshot.CaseGrafting.purs diff --git a/backend-es/test/snapshots/src/Snapshot.CaseGuarded.purs b/snapshots/src/Snapshot.CaseGuarded.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.CaseGuarded.purs rename to snapshots/src/Snapshot.CaseGuarded.purs diff --git a/backend-es/test/snapshots/src/Snapshot.CaseHeuristics.purs b/snapshots/src/Snapshot.CaseHeuristics.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.CaseHeuristics.purs rename to snapshots/src/Snapshot.CaseHeuristics.purs diff --git a/backend-es/test/snapshots/src/Snapshot.CaseJacobs.purs b/snapshots/src/Snapshot.CaseJacobs.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.CaseJacobs.purs rename to snapshots/src/Snapshot.CaseJacobs.purs diff --git a/backend-es/test/snapshots/src/Snapshot.CaseLeafTco.purs b/snapshots/src/Snapshot.CaseLeafTco.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.CaseLeafTco.purs rename to snapshots/src/Snapshot.CaseLeafTco.purs diff --git a/backend-es/test/snapshots/src/Snapshot.CaseLitArray.purs b/snapshots/src/Snapshot.CaseLitArray.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.CaseLitArray.purs rename to snapshots/src/Snapshot.CaseLitArray.purs diff --git a/backend-es/test/snapshots/src/Snapshot.CaseLitBoolean.purs b/snapshots/src/Snapshot.CaseLitBoolean.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.CaseLitBoolean.purs rename to snapshots/src/Snapshot.CaseLitBoolean.purs diff --git a/backend-es/test/snapshots/src/Snapshot.CaseLitChar.purs b/snapshots/src/Snapshot.CaseLitChar.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.CaseLitChar.purs rename to snapshots/src/Snapshot.CaseLitChar.purs diff --git a/backend-es/test/snapshots/src/Snapshot.CaseLitInt.purs b/snapshots/src/Snapshot.CaseLitInt.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.CaseLitInt.purs rename to snapshots/src/Snapshot.CaseLitInt.purs diff --git a/backend-es/test/snapshots/src/Snapshot.CaseLitNumber.purs b/snapshots/src/Snapshot.CaseLitNumber.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.CaseLitNumber.purs rename to snapshots/src/Snapshot.CaseLitNumber.purs diff --git a/backend-es/test/snapshots/src/Snapshot.CaseLitRecord.purs b/snapshots/src/Snapshot.CaseLitRecord.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.CaseLitRecord.purs rename to snapshots/src/Snapshot.CaseLitRecord.purs diff --git a/backend-es/test/snapshots/src/Snapshot.CaseLitString.purs b/snapshots/src/Snapshot.CaseLitString.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.CaseLitString.purs rename to snapshots/src/Snapshot.CaseLitString.purs diff --git a/backend-es/test/snapshots/src/Snapshot.CaseMulti.purs b/snapshots/src/Snapshot.CaseMulti.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.CaseMulti.purs rename to snapshots/src/Snapshot.CaseMulti.purs diff --git a/backend-es/test/snapshots/src/Snapshot.CaseNamed.purs b/snapshots/src/Snapshot.CaseNamed.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.CaseNamed.purs rename to snapshots/src/Snapshot.CaseNamed.purs diff --git a/backend-es/test/snapshots/src/Snapshot.CasePartial.purs b/snapshots/src/Snapshot.CasePartial.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.CasePartial.purs rename to snapshots/src/Snapshot.CasePartial.purs diff --git a/backend-es/test/snapshots/src/Snapshot.CaseRedBlackTree.purs b/snapshots/src/Snapshot.CaseRedBlackTree.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.CaseRedBlackTree.purs rename to snapshots/src/Snapshot.CaseRedBlackTree.purs diff --git a/backend-es/test/snapshots/src/Snapshot.ConvertableOptions01.purs b/snapshots/src/Snapshot.ConvertableOptions01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.ConvertableOptions01.purs rename to snapshots/src/Snapshot.ConvertableOptions01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.Cps01.purs b/snapshots/src/Snapshot.Cps01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.Cps01.purs rename to snapshots/src/Snapshot.Cps01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.Cps02.purs b/snapshots/src/Snapshot.Cps02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.Cps02.purs rename to snapshots/src/Snapshot.Cps02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.DefaultRulesEq01.purs b/snapshots/src/Snapshot.DefaultRulesEq01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.DefaultRulesEq01.purs rename to snapshots/src/Snapshot.DefaultRulesEq01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.DefaultRulesEq02.purs b/snapshots/src/Snapshot.DefaultRulesEq02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.DefaultRulesEq02.purs rename to snapshots/src/Snapshot.DefaultRulesEq02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.DefaultRulesFunction01.purs b/snapshots/src/Snapshot.DefaultRulesFunction01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.DefaultRulesFunction01.purs rename to snapshots/src/Snapshot.DefaultRulesFunction01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.DefaultRulesFunctor01.purs b/snapshots/src/Snapshot.DefaultRulesFunctor01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.DefaultRulesFunctor01.purs rename to snapshots/src/Snapshot.DefaultRulesFunctor01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.DefaultRulesMonoid01.purs b/snapshots/src/Snapshot.DefaultRulesMonoid01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.DefaultRulesMonoid01.purs rename to snapshots/src/Snapshot.DefaultRulesMonoid01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.DefaultRulesSemigroup.purs b/snapshots/src/Snapshot.DefaultRulesSemigroup.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.DefaultRulesSemigroup.purs rename to snapshots/src/Snapshot.DefaultRulesSemigroup.purs diff --git a/backend-es/test/snapshots/src/Snapshot.DefaultRulesSemigroup02.purs b/snapshots/src/Snapshot.DefaultRulesSemigroup02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.DefaultRulesSemigroup02.purs rename to snapshots/src/Snapshot.DefaultRulesSemigroup02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.EffectBind01.purs b/snapshots/src/Snapshot.EffectBind01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.EffectBind01.purs rename to snapshots/src/Snapshot.EffectBind01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.EffectBind02.purs b/snapshots/src/Snapshot.EffectBind02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.EffectBind02.purs rename to snapshots/src/Snapshot.EffectBind02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.EffectBind03.purs b/snapshots/src/Snapshot.EffectBind03.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.EffectBind03.purs rename to snapshots/src/Snapshot.EffectBind03.purs diff --git a/backend-es/test/snapshots/src/Snapshot.EffectBind04.purs b/snapshots/src/Snapshot.EffectBind04.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.EffectBind04.purs rename to snapshots/src/Snapshot.EffectBind04.purs diff --git a/backend-es/test/snapshots/src/Snapshot.EffectBind05.purs b/snapshots/src/Snapshot.EffectBind05.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.EffectBind05.purs rename to snapshots/src/Snapshot.EffectBind05.purs diff --git a/backend-es/test/snapshots/src/Snapshot.EffectBind06.purs b/snapshots/src/Snapshot.EffectBind06.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.EffectBind06.purs rename to snapshots/src/Snapshot.EffectBind06.purs diff --git a/backend-es/test/snapshots/src/Snapshot.EffectBind07.purs b/snapshots/src/Snapshot.EffectBind07.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.EffectBind07.purs rename to snapshots/src/Snapshot.EffectBind07.purs diff --git a/backend-es/test/snapshots/src/Snapshot.EffectBind08.purs b/snapshots/src/Snapshot.EffectBind08.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.EffectBind08.purs rename to snapshots/src/Snapshot.EffectBind08.purs diff --git a/backend-es/test/snapshots/src/Snapshot.EffectBind09.purs b/snapshots/src/Snapshot.EffectBind09.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.EffectBind09.purs rename to snapshots/src/Snapshot.EffectBind09.purs diff --git a/backend-es/test/snapshots/src/Snapshot.EffectLoops01.purs b/snapshots/src/Snapshot.EffectLoops01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.EffectLoops01.purs rename to snapshots/src/Snapshot.EffectLoops01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.EffectLoops02.purs b/snapshots/src/Snapshot.EffectLoops02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.EffectLoops02.purs rename to snapshots/src/Snapshot.EffectLoops02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.EffectLoops03.purs b/snapshots/src/Snapshot.EffectLoops03.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.EffectLoops03.purs rename to snapshots/src/Snapshot.EffectLoops03.purs diff --git a/backend-es/test/snapshots/src/Snapshot.EffectPure01.purs b/snapshots/src/Snapshot.EffectPure01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.EffectPure01.purs rename to snapshots/src/Snapshot.EffectPure01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.EffectRefs01.purs b/snapshots/src/Snapshot.EffectRefs01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.EffectRefs01.purs rename to snapshots/src/Snapshot.EffectRefs01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.EffectRefs02.purs b/snapshots/src/Snapshot.EffectRefs02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.EffectRefs02.purs rename to snapshots/src/Snapshot.EffectRefs02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.EffectUnsafe01.purs b/snapshots/src/Snapshot.EffectUnsafe01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.EffectUnsafe01.purs rename to snapshots/src/Snapshot.EffectUnsafe01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.EsPrecedence01.purs b/snapshots/src/Snapshot.EsPrecedence01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.EsPrecedence01.purs rename to snapshots/src/Snapshot.EsPrecedence01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.EsPrecedence02.purs b/snapshots/src/Snapshot.EsPrecedence02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.EsPrecedence02.purs rename to snapshots/src/Snapshot.EsPrecedence02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.EsPrecedence03.purs b/snapshots/src/Snapshot.EsPrecedence03.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.EsPrecedence03.purs rename to snapshots/src/Snapshot.EsPrecedence03.purs diff --git a/backend-es/test/snapshots/src/Snapshot.EscapeIdentifiers.purs b/snapshots/src/Snapshot.EscapeIdentifiers.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.EscapeIdentifiers.purs rename to snapshots/src/Snapshot.EscapeIdentifiers.purs diff --git a/backend-es/test/snapshots/src/Snapshot.EtaReduceRegression01.purs b/snapshots/src/Snapshot.EtaReduceRegression01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.EtaReduceRegression01.purs rename to snapshots/src/Snapshot.EtaReduceRegression01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.FunctionCompose01.purs b/snapshots/src/Snapshot.FunctionCompose01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.FunctionCompose01.purs rename to snapshots/src/Snapshot.FunctionCompose01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.FunctionCompose02.purs b/snapshots/src/Snapshot.FunctionCompose02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.FunctionCompose02.purs rename to snapshots/src/Snapshot.FunctionCompose02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.FunctionCompose03.purs b/snapshots/src/Snapshot.FunctionCompose03.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.FunctionCompose03.purs rename to snapshots/src/Snapshot.FunctionCompose03.purs diff --git a/backend-es/test/snapshots/src/Snapshot.Fusion01.purs b/snapshots/src/Snapshot.Fusion01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.Fusion01.purs rename to snapshots/src/Snapshot.Fusion01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.Fusion02.purs b/snapshots/src/Snapshot.Fusion02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.Fusion02.purs rename to snapshots/src/Snapshot.Fusion02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.HalogenVDomST01.purs b/snapshots/src/Snapshot.HalogenVDomST01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.HalogenVDomST01.purs rename to snapshots/src/Snapshot.HalogenVDomST01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.HalogenVDomST02.purs b/snapshots/src/Snapshot.HalogenVDomST02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.HalogenVDomST02.purs rename to snapshots/src/Snapshot.HalogenVDomST02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.HelloWorld01.purs b/snapshots/src/Snapshot.HelloWorld01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.HelloWorld01.purs rename to snapshots/src/Snapshot.HelloWorld01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.Heterogeneous01.purs b/snapshots/src/Snapshot.Heterogeneous01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.Heterogeneous01.purs rename to snapshots/src/Snapshot.Heterogeneous01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.Html.purs b/snapshots/src/Snapshot.Html.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.Html.purs rename to snapshots/src/Snapshot.Html.purs diff --git a/backend-es/test/snapshots/src/Snapshot.InlineArrayIndex.purs b/snapshots/src/Snapshot.InlineArrayIndex.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.InlineArrayIndex.purs rename to snapshots/src/Snapshot.InlineArrayIndex.purs diff --git a/backend-es/test/snapshots/src/Snapshot.InlineCase01.purs b/snapshots/src/Snapshot.InlineCase01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.InlineCase01.purs rename to snapshots/src/Snapshot.InlineCase01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.InlineCase02.purs b/snapshots/src/Snapshot.InlineCase02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.InlineCase02.purs rename to snapshots/src/Snapshot.InlineCase02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.InlineDirectivePropSpine01.purs b/snapshots/src/Snapshot.InlineDirectivePropSpine01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.InlineDirectivePropSpine01.purs rename to snapshots/src/Snapshot.InlineDirectivePropSpine01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.InlineDirectivePropSpine02.purs b/snapshots/src/Snapshot.InlineDirectivePropSpine02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.InlineDirectivePropSpine02.purs rename to snapshots/src/Snapshot.InlineDirectivePropSpine02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.InlineLocalReferenceOpArrayLength.purs b/snapshots/src/Snapshot.InlineLocalReferenceOpArrayLength.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.InlineLocalReferenceOpArrayLength.purs rename to snapshots/src/Snapshot.InlineLocalReferenceOpArrayLength.purs diff --git a/backend-es/test/snapshots/src/Snapshot.InlineLocalReferenceOpIsTag.purs b/snapshots/src/Snapshot.InlineLocalReferenceOpIsTag.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.InlineLocalReferenceOpIsTag.purs rename to snapshots/src/Snapshot.InlineLocalReferenceOpIsTag.purs diff --git a/backend-es/test/snapshots/src/Snapshot.InlineNever.purs b/snapshots/src/Snapshot.InlineNever.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.InlineNever.purs rename to snapshots/src/Snapshot.InlineNever.purs diff --git a/backend-es/test/snapshots/src/Snapshot.KnownConstructor07.purs b/snapshots/src/Snapshot.KnownConstructor07.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.KnownConstructor07.purs rename to snapshots/src/Snapshot.KnownConstructor07.purs diff --git a/backend-es/test/snapshots/src/Snapshot.KnownConstructors01.purs b/snapshots/src/Snapshot.KnownConstructors01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.KnownConstructors01.purs rename to snapshots/src/Snapshot.KnownConstructors01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.KnownConstructors02.purs b/snapshots/src/Snapshot.KnownConstructors02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.KnownConstructors02.purs rename to snapshots/src/Snapshot.KnownConstructors02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.KnownConstructors03.purs b/snapshots/src/Snapshot.KnownConstructors03.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.KnownConstructors03.purs rename to snapshots/src/Snapshot.KnownConstructors03.purs diff --git a/backend-es/test/snapshots/src/Snapshot.KnownConstructors04.purs b/snapshots/src/Snapshot.KnownConstructors04.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.KnownConstructors04.purs rename to snapshots/src/Snapshot.KnownConstructors04.purs diff --git a/backend-es/test/snapshots/src/Snapshot.KnownConstructors05.purs b/snapshots/src/Snapshot.KnownConstructors05.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.KnownConstructors05.purs rename to snapshots/src/Snapshot.KnownConstructors05.purs diff --git a/backend-es/test/snapshots/src/Snapshot.KnownConstructors06.purs b/snapshots/src/Snapshot.KnownConstructors06.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.KnownConstructors06.purs rename to snapshots/src/Snapshot.KnownConstructors06.purs diff --git a/backend-es/test/snapshots/src/Snapshot.Object01.purs b/snapshots/src/Snapshot.Object01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.Object01.purs rename to snapshots/src/Snapshot.Object01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.PrimOpArray01.purs b/snapshots/src/Snapshot.PrimOpArray01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.PrimOpArray01.purs rename to snapshots/src/Snapshot.PrimOpArray01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.PrimOpBoolean01.purs b/snapshots/src/Snapshot.PrimOpBoolean01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.PrimOpBoolean01.purs rename to snapshots/src/Snapshot.PrimOpBoolean01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.PrimOpBoolean02.purs b/snapshots/src/Snapshot.PrimOpBoolean02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.PrimOpBoolean02.purs rename to snapshots/src/Snapshot.PrimOpBoolean02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.PrimOpChar01.purs b/snapshots/src/Snapshot.PrimOpChar01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.PrimOpChar01.purs rename to snapshots/src/Snapshot.PrimOpChar01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.PrimOpChar02.purs b/snapshots/src/Snapshot.PrimOpChar02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.PrimOpChar02.purs rename to snapshots/src/Snapshot.PrimOpChar02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.PrimOpInt01.purs b/snapshots/src/Snapshot.PrimOpInt01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.PrimOpInt01.purs rename to snapshots/src/Snapshot.PrimOpInt01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.PrimOpInt02.purs b/snapshots/src/Snapshot.PrimOpInt02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.PrimOpInt02.purs rename to snapshots/src/Snapshot.PrimOpInt02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.PrimOpIntBit01.purs b/snapshots/src/Snapshot.PrimOpIntBit01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.PrimOpIntBit01.purs rename to snapshots/src/Snapshot.PrimOpIntBit01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.PrimOpIntBit02.purs b/snapshots/src/Snapshot.PrimOpIntBit02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.PrimOpIntBit02.purs rename to snapshots/src/Snapshot.PrimOpIntBit02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.PrimOpNumber01.purs b/snapshots/src/Snapshot.PrimOpNumber01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.PrimOpNumber01.purs rename to snapshots/src/Snapshot.PrimOpNumber01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.PrimOpNumber02.purs b/snapshots/src/Snapshot.PrimOpNumber02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.PrimOpNumber02.purs rename to snapshots/src/Snapshot.PrimOpNumber02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.PrimOpString01.purs b/snapshots/src/Snapshot.PrimOpString01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.PrimOpString01.purs rename to snapshots/src/Snapshot.PrimOpString01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.PrimOpString02.purs b/snapshots/src/Snapshot.PrimOpString02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.PrimOpString02.purs rename to snapshots/src/Snapshot.PrimOpString02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.PrimOpString03.purs b/snapshots/src/Snapshot.PrimOpString03.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.PrimOpString03.purs rename to snapshots/src/Snapshot.PrimOpString03.purs diff --git a/backend-es/test/snapshots/src/Snapshot.ProfunctorLenses01.purs b/snapshots/src/Snapshot.ProfunctorLenses01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.ProfunctorLenses01.purs rename to snapshots/src/Snapshot.ProfunctorLenses01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.ProfunctorLenses02.purs b/snapshots/src/Snapshot.ProfunctorLenses02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.ProfunctorLenses02.purs rename to snapshots/src/Snapshot.ProfunctorLenses02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.RecordUnion01.purs b/snapshots/src/Snapshot.RecordUnion01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.RecordUnion01.purs rename to snapshots/src/Snapshot.RecordUnion01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.RecursionSchemes01.purs b/snapshots/src/Snapshot.RecursionSchemes01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.RecursionSchemes01.purs rename to snapshots/src/Snapshot.RecursionSchemes01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.RecursiveBindingGroup01.purs b/snapshots/src/Snapshot.RecursiveBindingGroup01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.RecursiveBindingGroup01.purs rename to snapshots/src/Snapshot.RecursiveBindingGroup01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.RecursiveBindingGroup02.purs b/snapshots/src/Snapshot.RecursiveBindingGroup02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.RecursiveBindingGroup02.purs rename to snapshots/src/Snapshot.RecursiveBindingGroup02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.STArray01.purs b/snapshots/src/Snapshot.STArray01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.STArray01.purs rename to snapshots/src/Snapshot.STArray01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.STArray02.purs b/snapshots/src/Snapshot.STArray02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.STArray02.purs rename to snapshots/src/Snapshot.STArray02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.STArray03.purs b/snapshots/src/Snapshot.STArray03.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.STArray03.purs rename to snapshots/src/Snapshot.STArray03.purs diff --git a/backend-es/test/snapshots/src/Snapshot.STArray04.purs b/snapshots/src/Snapshot.STArray04.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.STArray04.purs rename to snapshots/src/Snapshot.STArray04.purs diff --git a/backend-es/test/snapshots/src/Snapshot.STLoops01.purs b/snapshots/src/Snapshot.STLoops01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.STLoops01.purs rename to snapshots/src/Snapshot.STLoops01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.STLoops02.purs b/snapshots/src/Snapshot.STLoops02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.STLoops02.purs rename to snapshots/src/Snapshot.STLoops02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.STLoops03.purs b/snapshots/src/Snapshot.STLoops03.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.STLoops03.purs rename to snapshots/src/Snapshot.STLoops03.purs diff --git a/backend-es/test/snapshots/src/Snapshot.STObject01.purs b/snapshots/src/Snapshot.STObject01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.STObject01.purs rename to snapshots/src/Snapshot.STObject01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.STRun01.purs b/snapshots/src/Snapshot.STRun01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.STRun01.purs rename to snapshots/src/Snapshot.STRun01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.ShowLiterals.purs b/snapshots/src/Snapshot.ShowLiterals.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.ShowLiterals.purs rename to snapshots/src/Snapshot.ShowLiterals.purs diff --git a/backend-es/test/snapshots/src/Snapshot.StringLiteral01.purs b/snapshots/src/Snapshot.StringLiteral01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.StringLiteral01.purs rename to snapshots/src/Snapshot.StringLiteral01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.Tco01.purs b/snapshots/src/Snapshot.Tco01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.Tco01.purs rename to snapshots/src/Snapshot.Tco01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.Tco02.purs b/snapshots/src/Snapshot.Tco02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.Tco02.purs rename to snapshots/src/Snapshot.Tco02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.Tco03.purs b/snapshots/src/Snapshot.Tco03.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.Tco03.purs rename to snapshots/src/Snapshot.Tco03.purs diff --git a/backend-es/test/snapshots/src/Snapshot.Tco04.purs b/snapshots/src/Snapshot.Tco04.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.Tco04.purs rename to snapshots/src/Snapshot.Tco04.purs diff --git a/backend-es/test/snapshots/src/Snapshot.Tco05.purs b/snapshots/src/Snapshot.Tco05.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.Tco05.purs rename to snapshots/src/Snapshot.Tco05.purs diff --git a/backend-es/test/snapshots/src/Snapshot.Tco06.purs b/snapshots/src/Snapshot.Tco06.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.Tco06.purs rename to snapshots/src/Snapshot.Tco06.purs diff --git a/backend-es/test/snapshots/src/Snapshot.TopLevelHygiene01.purs b/snapshots/src/Snapshot.TopLevelHygiene01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.TopLevelHygiene01.purs rename to snapshots/src/Snapshot.TopLevelHygiene01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.TopLevelHygiene02.purs b/snapshots/src/Snapshot.TopLevelHygiene02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.TopLevelHygiene02.purs rename to snapshots/src/Snapshot.TopLevelHygiene02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.UncurriedEffectFns01.purs b/snapshots/src/Snapshot.UncurriedEffectFns01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.UncurriedEffectFns01.purs rename to snapshots/src/Snapshot.UncurriedEffectFns01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.UncurriedEffectFns02.purs b/snapshots/src/Snapshot.UncurriedEffectFns02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.UncurriedEffectFns02.purs rename to snapshots/src/Snapshot.UncurriedEffectFns02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.UncurriedFns01.purs b/snapshots/src/Snapshot.UncurriedFns01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.UncurriedFns01.purs rename to snapshots/src/Snapshot.UncurriedFns01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.UncurriedLocalAbs01.purs b/snapshots/src/Snapshot.UncurriedLocalAbs01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.UncurriedLocalAbs01.purs rename to snapshots/src/Snapshot.UncurriedLocalAbs01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.UncurriedSTFns01.purs b/snapshots/src/Snapshot.UncurriedSTFns01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.UncurriedSTFns01.purs rename to snapshots/src/Snapshot.UncurriedSTFns01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.UncurriedSTFns02.purs b/snapshots/src/Snapshot.UncurriedSTFns02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.UncurriedSTFns02.purs rename to snapshots/src/Snapshot.UncurriedSTFns02.purs diff --git a/backend-es/test/snapshots/src/Snapshot.UnpackArray01.purs b/snapshots/src/Snapshot.UnpackArray01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.UnpackArray01.purs rename to snapshots/src/Snapshot.UnpackArray01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.UnsafePerformEffect.purs b/snapshots/src/Snapshot.UnsafePerformEffect.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.UnsafePerformEffect.purs rename to snapshots/src/Snapshot.UnsafePerformEffect.purs diff --git a/backend-es/test/snapshots/src/Snapshot.VanLaarhovenTraversals01.purs b/snapshots/src/Snapshot.VanLaarhovenTraversals01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.VanLaarhovenTraversals01.purs rename to snapshots/src/Snapshot.VanLaarhovenTraversals01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.Variant01.purs b/snapshots/src/Snapshot.Variant01.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.Variant01.purs rename to snapshots/src/Snapshot.Variant01.purs diff --git a/backend-es/test/snapshots/src/Snapshot.Variant02.purs b/snapshots/src/Snapshot.Variant02.purs similarity index 100% rename from backend-es/test/snapshots/src/Snapshot.Variant02.purs rename to snapshots/src/Snapshot.Variant02.purs diff --git a/spago.yaml b/spago.yaml index 1cd59b55..e8866955 100644 --- a/spago.yaml +++ b/spago.yaml @@ -1,49 +1,3 @@ -package: - name: "lib-backend-optimizer" - dependencies: - - "aff" - - "ansi" - - "argonaut" - - "argonaut-codecs" - - "argparse-basic" - - "arrays" - - "bifunctors" - - "console" - - "control" - - "debug" - - "dodo-printer" - - "effect" - - "either" - - "enums" - - "filterable" - - "foldable-traversable" - - "foreign-object" - - "free" - - "integers" - - "language-cst-parser" - - "lazy" - - "lists" - - "maybe" - - "newtype" - - "node-buffer" - - "node-child-process" - - "node-fs" - - "node-fs-aff" - - "node-glob-basic" - - "node-path" - - "node-process" - - "node-streams" - - "ordered-collections" - - "parallel" - - "partial" - - "posix-types" - - "prelude" - - "refs" - - "safe-coerce" - - "strings" - - "transformers" - - "tuples" - - "unsafe-coerce" workspace: package_set: registry: 11.10.0 diff --git a/test/.gitignore b/test/.gitignore new file mode 100644 index 00000000..44cb9419 --- /dev/null +++ b/test/.gitignore @@ -0,0 +1 @@ +test-out diff --git a/backend-es/test/snapshots-out/.gitattributes b/test/snapshots-out/.gitattributes similarity index 100% rename from backend-es/test/snapshots-out/.gitattributes rename to test/snapshots-out/.gitattributes diff --git a/backend-es/test/snapshots-out/Snapshot.BackendSemantics01.js b/test/snapshots-out/Snapshot.BackendSemantics01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.BackendSemantics01.js rename to test/snapshots-out/Snapshot.BackendSemantics01.js diff --git a/backend-es/test/snapshots-out/Snapshot.BackendSemantics02.js b/test/snapshots-out/Snapshot.BackendSemantics02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.BackendSemantics02.js rename to test/snapshots-out/Snapshot.BackendSemantics02.js diff --git a/backend-es/test/snapshots-out/Snapshot.BranchSpecialization01.js b/test/snapshots-out/Snapshot.BranchSpecialization01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.BranchSpecialization01.js rename to test/snapshots-out/Snapshot.BranchSpecialization01.js diff --git a/backend-es/test/snapshots-out/Snapshot.CaptureDerefRegression01.js b/test/snapshots-out/Snapshot.CaptureDerefRegression01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.CaptureDerefRegression01.js rename to test/snapshots-out/Snapshot.CaptureDerefRegression01.js diff --git a/backend-es/test/snapshots-out/Snapshot.CaseArray.js b/test/snapshots-out/Snapshot.CaseArray.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.CaseArray.js rename to test/snapshots-out/Snapshot.CaseArray.js diff --git a/backend-es/test/snapshots-out/Snapshot.CaseBoolean.js b/test/snapshots-out/Snapshot.CaseBoolean.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.CaseBoolean.js rename to test/snapshots-out/Snapshot.CaseBoolean.js diff --git a/backend-es/test/snapshots-out/Snapshot.CaseChar.js b/test/snapshots-out/Snapshot.CaseChar.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.CaseChar.js rename to test/snapshots-out/Snapshot.CaseChar.js diff --git a/backend-es/test/snapshots-out/Snapshot.CaseGrafting.js b/test/snapshots-out/Snapshot.CaseGrafting.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.CaseGrafting.js rename to test/snapshots-out/Snapshot.CaseGrafting.js diff --git a/backend-es/test/snapshots-out/Snapshot.CaseGuarded.js b/test/snapshots-out/Snapshot.CaseGuarded.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.CaseGuarded.js rename to test/snapshots-out/Snapshot.CaseGuarded.js diff --git a/backend-es/test/snapshots-out/Snapshot.CaseHeuristics.js b/test/snapshots-out/Snapshot.CaseHeuristics.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.CaseHeuristics.js rename to test/snapshots-out/Snapshot.CaseHeuristics.js diff --git a/backend-es/test/snapshots-out/Snapshot.CaseInt.js b/test/snapshots-out/Snapshot.CaseInt.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.CaseInt.js rename to test/snapshots-out/Snapshot.CaseInt.js diff --git a/backend-es/test/snapshots-out/Snapshot.CaseJacobs.js b/test/snapshots-out/Snapshot.CaseJacobs.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.CaseJacobs.js rename to test/snapshots-out/Snapshot.CaseJacobs.js diff --git a/backend-es/test/snapshots-out/Snapshot.CaseLeafTco.js b/test/snapshots-out/Snapshot.CaseLeafTco.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.CaseLeafTco.js rename to test/snapshots-out/Snapshot.CaseLeafTco.js diff --git a/backend-es/test/snapshots-out/Snapshot.CaseMulti.js b/test/snapshots-out/Snapshot.CaseMulti.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.CaseMulti.js rename to test/snapshots-out/Snapshot.CaseMulti.js diff --git a/backend-es/test/snapshots-out/Snapshot.CaseNamed.js b/test/snapshots-out/Snapshot.CaseNamed.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.CaseNamed.js rename to test/snapshots-out/Snapshot.CaseNamed.js diff --git a/backend-es/test/snapshots-out/Snapshot.CaseNewtype.js b/test/snapshots-out/Snapshot.CaseNewtype.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.CaseNewtype.js rename to test/snapshots-out/Snapshot.CaseNewtype.js diff --git a/backend-es/test/snapshots-out/Snapshot.CaseNumber.js b/test/snapshots-out/Snapshot.CaseNumber.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.CaseNumber.js rename to test/snapshots-out/Snapshot.CaseNumber.js diff --git a/backend-es/test/snapshots-out/Snapshot.CasePartial.js b/test/snapshots-out/Snapshot.CasePartial.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.CasePartial.js rename to test/snapshots-out/Snapshot.CasePartial.js diff --git a/backend-es/test/snapshots-out/Snapshot.CaseProduct.js b/test/snapshots-out/Snapshot.CaseProduct.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.CaseProduct.js rename to test/snapshots-out/Snapshot.CaseProduct.js diff --git a/backend-es/test/snapshots-out/Snapshot.CaseRecord.js b/test/snapshots-out/Snapshot.CaseRecord.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.CaseRecord.js rename to test/snapshots-out/Snapshot.CaseRecord.js diff --git a/backend-es/test/snapshots-out/Snapshot.CaseRedBlackTree.js b/test/snapshots-out/Snapshot.CaseRedBlackTree.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.CaseRedBlackTree.js rename to test/snapshots-out/Snapshot.CaseRedBlackTree.js diff --git a/backend-es/test/snapshots-out/Snapshot.CaseString.js b/test/snapshots-out/Snapshot.CaseString.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.CaseString.js rename to test/snapshots-out/Snapshot.CaseString.js diff --git a/backend-es/test/snapshots-out/Snapshot.CaseSum.js b/test/snapshots-out/Snapshot.CaseSum.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.CaseSum.js rename to test/snapshots-out/Snapshot.CaseSum.js diff --git a/backend-es/test/snapshots-out/Snapshot.ConvertableOptions01.js b/test/snapshots-out/Snapshot.ConvertableOptions01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.ConvertableOptions01.js rename to test/snapshots-out/Snapshot.ConvertableOptions01.js diff --git a/backend-es/test/snapshots-out/Snapshot.Cps01.js b/test/snapshots-out/Snapshot.Cps01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.Cps01.js rename to test/snapshots-out/Snapshot.Cps01.js diff --git a/backend-es/test/snapshots-out/Snapshot.Cps02.js b/test/snapshots-out/Snapshot.Cps02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.Cps02.js rename to test/snapshots-out/Snapshot.Cps02.js diff --git a/backend-es/test/snapshots-out/Snapshot.DefaultRulesEq01.js b/test/snapshots-out/Snapshot.DefaultRulesEq01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.DefaultRulesEq01.js rename to test/snapshots-out/Snapshot.DefaultRulesEq01.js diff --git a/backend-es/test/snapshots-out/Snapshot.DefaultRulesEq02.js b/test/snapshots-out/Snapshot.DefaultRulesEq02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.DefaultRulesEq02.js rename to test/snapshots-out/Snapshot.DefaultRulesEq02.js diff --git a/backend-es/test/snapshots-out/Snapshot.DefaultRulesFunction01.js b/test/snapshots-out/Snapshot.DefaultRulesFunction01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.DefaultRulesFunction01.js rename to test/snapshots-out/Snapshot.DefaultRulesFunction01.js diff --git a/backend-es/test/snapshots-out/Snapshot.DefaultRulesFunctor01.js b/test/snapshots-out/Snapshot.DefaultRulesFunctor01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.DefaultRulesFunctor01.js rename to test/snapshots-out/Snapshot.DefaultRulesFunctor01.js diff --git a/backend-es/test/snapshots-out/Snapshot.DefaultRulesMonoid01.js b/test/snapshots-out/Snapshot.DefaultRulesMonoid01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.DefaultRulesMonoid01.js rename to test/snapshots-out/Snapshot.DefaultRulesMonoid01.js diff --git a/backend-es/test/snapshots-out/Snapshot.DefaultRulesSemigroup01.js b/test/snapshots-out/Snapshot.DefaultRulesSemigroup01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.DefaultRulesSemigroup01.js rename to test/snapshots-out/Snapshot.DefaultRulesSemigroup01.js diff --git a/backend-es/test/snapshots-out/Snapshot.DefaultRulesSemigroup02.js b/test/snapshots-out/Snapshot.DefaultRulesSemigroup02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.DefaultRulesSemigroup02.js rename to test/snapshots-out/Snapshot.DefaultRulesSemigroup02.js diff --git a/backend-es/test/snapshots-out/Snapshot.EffectBind01.js b/test/snapshots-out/Snapshot.EffectBind01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.EffectBind01.js rename to test/snapshots-out/Snapshot.EffectBind01.js diff --git a/backend-es/test/snapshots-out/Snapshot.EffectBind02.js b/test/snapshots-out/Snapshot.EffectBind02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.EffectBind02.js rename to test/snapshots-out/Snapshot.EffectBind02.js diff --git a/backend-es/test/snapshots-out/Snapshot.EffectBind03.js b/test/snapshots-out/Snapshot.EffectBind03.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.EffectBind03.js rename to test/snapshots-out/Snapshot.EffectBind03.js diff --git a/backend-es/test/snapshots-out/Snapshot.EffectBind04.js b/test/snapshots-out/Snapshot.EffectBind04.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.EffectBind04.js rename to test/snapshots-out/Snapshot.EffectBind04.js diff --git a/backend-es/test/snapshots-out/Snapshot.EffectBind05.js b/test/snapshots-out/Snapshot.EffectBind05.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.EffectBind05.js rename to test/snapshots-out/Snapshot.EffectBind05.js diff --git a/backend-es/test/snapshots-out/Snapshot.EffectBind06.js b/test/snapshots-out/Snapshot.EffectBind06.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.EffectBind06.js rename to test/snapshots-out/Snapshot.EffectBind06.js diff --git a/backend-es/test/snapshots-out/Snapshot.EffectBind07.js b/test/snapshots-out/Snapshot.EffectBind07.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.EffectBind07.js rename to test/snapshots-out/Snapshot.EffectBind07.js diff --git a/backend-es/test/snapshots-out/Snapshot.EffectBind08.js b/test/snapshots-out/Snapshot.EffectBind08.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.EffectBind08.js rename to test/snapshots-out/Snapshot.EffectBind08.js diff --git a/backend-es/test/snapshots-out/Snapshot.EffectBind09.js b/test/snapshots-out/Snapshot.EffectBind09.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.EffectBind09.js rename to test/snapshots-out/Snapshot.EffectBind09.js diff --git a/backend-es/test/snapshots-out/Snapshot.EffectLoops01.js b/test/snapshots-out/Snapshot.EffectLoops01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.EffectLoops01.js rename to test/snapshots-out/Snapshot.EffectLoops01.js diff --git a/backend-es/test/snapshots-out/Snapshot.EffectLoops02.js b/test/snapshots-out/Snapshot.EffectLoops02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.EffectLoops02.js rename to test/snapshots-out/Snapshot.EffectLoops02.js diff --git a/backend-es/test/snapshots-out/Snapshot.EffectLoops03.js b/test/snapshots-out/Snapshot.EffectLoops03.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.EffectLoops03.js rename to test/snapshots-out/Snapshot.EffectLoops03.js diff --git a/backend-es/test/snapshots-out/Snapshot.EffectPure01.js b/test/snapshots-out/Snapshot.EffectPure01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.EffectPure01.js rename to test/snapshots-out/Snapshot.EffectPure01.js diff --git a/backend-es/test/snapshots-out/Snapshot.EffectRefs01.js b/test/snapshots-out/Snapshot.EffectRefs01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.EffectRefs01.js rename to test/snapshots-out/Snapshot.EffectRefs01.js diff --git a/backend-es/test/snapshots-out/Snapshot.EffectRefs02.js b/test/snapshots-out/Snapshot.EffectRefs02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.EffectRefs02.js rename to test/snapshots-out/Snapshot.EffectRefs02.js diff --git a/backend-es/test/snapshots-out/Snapshot.EffectUnsafe01.js b/test/snapshots-out/Snapshot.EffectUnsafe01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.EffectUnsafe01.js rename to test/snapshots-out/Snapshot.EffectUnsafe01.js diff --git a/backend-es/test/snapshots-out/Snapshot.EsPrecedence01.js b/test/snapshots-out/Snapshot.EsPrecedence01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.EsPrecedence01.js rename to test/snapshots-out/Snapshot.EsPrecedence01.js diff --git a/backend-es/test/snapshots-out/Snapshot.EsPrecedence02.js b/test/snapshots-out/Snapshot.EsPrecedence02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.EsPrecedence02.js rename to test/snapshots-out/Snapshot.EsPrecedence02.js diff --git a/backend-es/test/snapshots-out/Snapshot.EsPrecedence03.js b/test/snapshots-out/Snapshot.EsPrecedence03.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.EsPrecedence03.js rename to test/snapshots-out/Snapshot.EsPrecedence03.js diff --git a/backend-es/test/snapshots-out/Snapshot.EscapeIdentifiers.js b/test/snapshots-out/Snapshot.EscapeIdentifiers.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.EscapeIdentifiers.js rename to test/snapshots-out/Snapshot.EscapeIdentifiers.js diff --git a/backend-es/test/snapshots-out/Snapshot.EtaReduceRegression01.js b/test/snapshots-out/Snapshot.EtaReduceRegression01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.EtaReduceRegression01.js rename to test/snapshots-out/Snapshot.EtaReduceRegression01.js diff --git a/backend-es/test/snapshots-out/Snapshot.FunctionCompose01.js b/test/snapshots-out/Snapshot.FunctionCompose01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.FunctionCompose01.js rename to test/snapshots-out/Snapshot.FunctionCompose01.js diff --git a/backend-es/test/snapshots-out/Snapshot.FunctionCompose02.js b/test/snapshots-out/Snapshot.FunctionCompose02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.FunctionCompose02.js rename to test/snapshots-out/Snapshot.FunctionCompose02.js diff --git a/backend-es/test/snapshots-out/Snapshot.FunctionCompose03.js b/test/snapshots-out/Snapshot.FunctionCompose03.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.FunctionCompose03.js rename to test/snapshots-out/Snapshot.FunctionCompose03.js diff --git a/backend-es/test/snapshots-out/Snapshot.Fusion01.js b/test/snapshots-out/Snapshot.Fusion01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.Fusion01.js rename to test/snapshots-out/Snapshot.Fusion01.js diff --git a/backend-es/test/snapshots-out/Snapshot.Fusion02.js b/test/snapshots-out/Snapshot.Fusion02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.Fusion02.js rename to test/snapshots-out/Snapshot.Fusion02.js diff --git a/backend-es/test/snapshots-out/Snapshot.HalogenVDomST01.js b/test/snapshots-out/Snapshot.HalogenVDomST01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.HalogenVDomST01.js rename to test/snapshots-out/Snapshot.HalogenVDomST01.js diff --git a/backend-es/test/snapshots-out/Snapshot.HalogenVDomST02.js b/test/snapshots-out/Snapshot.HalogenVDomST02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.HalogenVDomST02.js rename to test/snapshots-out/Snapshot.HalogenVDomST02.js diff --git a/backend-es/test/snapshots-out/Snapshot.HelloWorld01.js b/test/snapshots-out/Snapshot.HelloWorld01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.HelloWorld01.js rename to test/snapshots-out/Snapshot.HelloWorld01.js diff --git a/backend-es/test/snapshots-out/Snapshot.Heterogeneous01.js b/test/snapshots-out/Snapshot.Heterogeneous01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.Heterogeneous01.js rename to test/snapshots-out/Snapshot.Heterogeneous01.js diff --git a/backend-es/test/snapshots-out/Snapshot.Html.js b/test/snapshots-out/Snapshot.Html.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.Html.js rename to test/snapshots-out/Snapshot.Html.js diff --git a/backend-es/test/snapshots-out/Snapshot.InlineArrayIndex.js b/test/snapshots-out/Snapshot.InlineArrayIndex.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.InlineArrayIndex.js rename to test/snapshots-out/Snapshot.InlineArrayIndex.js diff --git a/backend-es/test/snapshots-out/Snapshot.InlineCase01.js b/test/snapshots-out/Snapshot.InlineCase01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.InlineCase01.js rename to test/snapshots-out/Snapshot.InlineCase01.js diff --git a/backend-es/test/snapshots-out/Snapshot.InlineCase02.js b/test/snapshots-out/Snapshot.InlineCase02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.InlineCase02.js rename to test/snapshots-out/Snapshot.InlineCase02.js diff --git a/backend-es/test/snapshots-out/Snapshot.InlineDirectivePropSpine01.js b/test/snapshots-out/Snapshot.InlineDirectivePropSpine01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.InlineDirectivePropSpine01.js rename to test/snapshots-out/Snapshot.InlineDirectivePropSpine01.js diff --git a/backend-es/test/snapshots-out/Snapshot.InlineDirectivePropSpine02.js b/test/snapshots-out/Snapshot.InlineDirectivePropSpine02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.InlineDirectivePropSpine02.js rename to test/snapshots-out/Snapshot.InlineDirectivePropSpine02.js diff --git a/backend-es/test/snapshots-out/Snapshot.InlineLocalReferenceOpArrayLength.js b/test/snapshots-out/Snapshot.InlineLocalReferenceOpArrayLength.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.InlineLocalReferenceOpArrayLength.js rename to test/snapshots-out/Snapshot.InlineLocalReferenceOpArrayLength.js diff --git a/backend-es/test/snapshots-out/Snapshot.InlineLocalReferenceOpIsTag.js b/test/snapshots-out/Snapshot.InlineLocalReferenceOpIsTag.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.InlineLocalReferenceOpIsTag.js rename to test/snapshots-out/Snapshot.InlineLocalReferenceOpIsTag.js diff --git a/backend-es/test/snapshots-out/Snapshot.InlineNever.js b/test/snapshots-out/Snapshot.InlineNever.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.InlineNever.js rename to test/snapshots-out/Snapshot.InlineNever.js diff --git a/backend-es/test/snapshots-out/Snapshot.KnownConstructor07.js b/test/snapshots-out/Snapshot.KnownConstructor07.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.KnownConstructor07.js rename to test/snapshots-out/Snapshot.KnownConstructor07.js diff --git a/backend-es/test/snapshots-out/Snapshot.KnownConstructors01.js b/test/snapshots-out/Snapshot.KnownConstructors01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.KnownConstructors01.js rename to test/snapshots-out/Snapshot.KnownConstructors01.js diff --git a/backend-es/test/snapshots-out/Snapshot.KnownConstructors02.js b/test/snapshots-out/Snapshot.KnownConstructors02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.KnownConstructors02.js rename to test/snapshots-out/Snapshot.KnownConstructors02.js diff --git a/backend-es/test/snapshots-out/Snapshot.KnownConstructors03.js b/test/snapshots-out/Snapshot.KnownConstructors03.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.KnownConstructors03.js rename to test/snapshots-out/Snapshot.KnownConstructors03.js diff --git a/backend-es/test/snapshots-out/Snapshot.KnownConstructors04.js b/test/snapshots-out/Snapshot.KnownConstructors04.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.KnownConstructors04.js rename to test/snapshots-out/Snapshot.KnownConstructors04.js diff --git a/backend-es/test/snapshots-out/Snapshot.KnownConstructors05.js b/test/snapshots-out/Snapshot.KnownConstructors05.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.KnownConstructors05.js rename to test/snapshots-out/Snapshot.KnownConstructors05.js diff --git a/backend-es/test/snapshots-out/Snapshot.KnownConstructors06.js b/test/snapshots-out/Snapshot.KnownConstructors06.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.KnownConstructors06.js rename to test/snapshots-out/Snapshot.KnownConstructors06.js diff --git a/backend-es/test/snapshots-out/Snapshot.Object01.js b/test/snapshots-out/Snapshot.Object01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.Object01.js rename to test/snapshots-out/Snapshot.Object01.js diff --git a/backend-es/test/snapshots-out/Snapshot.PrimOpArray01.js b/test/snapshots-out/Snapshot.PrimOpArray01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.PrimOpArray01.js rename to test/snapshots-out/Snapshot.PrimOpArray01.js diff --git a/backend-es/test/snapshots-out/Snapshot.PrimOpBoolean01.js b/test/snapshots-out/Snapshot.PrimOpBoolean01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.PrimOpBoolean01.js rename to test/snapshots-out/Snapshot.PrimOpBoolean01.js diff --git a/backend-es/test/snapshots-out/Snapshot.PrimOpBoolean02.js b/test/snapshots-out/Snapshot.PrimOpBoolean02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.PrimOpBoolean02.js rename to test/snapshots-out/Snapshot.PrimOpBoolean02.js diff --git a/backend-es/test/snapshots-out/Snapshot.PrimOpChar01.js b/test/snapshots-out/Snapshot.PrimOpChar01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.PrimOpChar01.js rename to test/snapshots-out/Snapshot.PrimOpChar01.js diff --git a/backend-es/test/snapshots-out/Snapshot.PrimOpChar02.js b/test/snapshots-out/Snapshot.PrimOpChar02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.PrimOpChar02.js rename to test/snapshots-out/Snapshot.PrimOpChar02.js diff --git a/backend-es/test/snapshots-out/Snapshot.PrimOpInt01.js b/test/snapshots-out/Snapshot.PrimOpInt01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.PrimOpInt01.js rename to test/snapshots-out/Snapshot.PrimOpInt01.js diff --git a/backend-es/test/snapshots-out/Snapshot.PrimOpInt02.js b/test/snapshots-out/Snapshot.PrimOpInt02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.PrimOpInt02.js rename to test/snapshots-out/Snapshot.PrimOpInt02.js diff --git a/backend-es/test/snapshots-out/Snapshot.PrimOpIntBit01.js b/test/snapshots-out/Snapshot.PrimOpIntBit01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.PrimOpIntBit01.js rename to test/snapshots-out/Snapshot.PrimOpIntBit01.js diff --git a/backend-es/test/snapshots-out/Snapshot.PrimOpIntBit02.js b/test/snapshots-out/Snapshot.PrimOpIntBit02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.PrimOpIntBit02.js rename to test/snapshots-out/Snapshot.PrimOpIntBit02.js diff --git a/backend-es/test/snapshots-out/Snapshot.PrimOpNumber01.js b/test/snapshots-out/Snapshot.PrimOpNumber01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.PrimOpNumber01.js rename to test/snapshots-out/Snapshot.PrimOpNumber01.js diff --git a/backend-es/test/snapshots-out/Snapshot.PrimOpNumber02.js b/test/snapshots-out/Snapshot.PrimOpNumber02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.PrimOpNumber02.js rename to test/snapshots-out/Snapshot.PrimOpNumber02.js diff --git a/backend-es/test/snapshots-out/Snapshot.PrimOpString01.js b/test/snapshots-out/Snapshot.PrimOpString01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.PrimOpString01.js rename to test/snapshots-out/Snapshot.PrimOpString01.js diff --git a/backend-es/test/snapshots-out/Snapshot.PrimOpString02.js b/test/snapshots-out/Snapshot.PrimOpString02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.PrimOpString02.js rename to test/snapshots-out/Snapshot.PrimOpString02.js diff --git a/backend-es/test/snapshots-out/Snapshot.PrimOpString03.js b/test/snapshots-out/Snapshot.PrimOpString03.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.PrimOpString03.js rename to test/snapshots-out/Snapshot.PrimOpString03.js diff --git a/backend-es/test/snapshots-out/Snapshot.ProfunctorLenses01.js b/test/snapshots-out/Snapshot.ProfunctorLenses01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.ProfunctorLenses01.js rename to test/snapshots-out/Snapshot.ProfunctorLenses01.js diff --git a/backend-es/test/snapshots-out/Snapshot.ProfunctorLenses02.js b/test/snapshots-out/Snapshot.ProfunctorLenses02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.ProfunctorLenses02.js rename to test/snapshots-out/Snapshot.ProfunctorLenses02.js diff --git a/backend-es/test/snapshots-out/Snapshot.RecordUnion01.js b/test/snapshots-out/Snapshot.RecordUnion01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.RecordUnion01.js rename to test/snapshots-out/Snapshot.RecordUnion01.js diff --git a/backend-es/test/snapshots-out/Snapshot.RecursionSchemes01.js b/test/snapshots-out/Snapshot.RecursionSchemes01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.RecursionSchemes01.js rename to test/snapshots-out/Snapshot.RecursionSchemes01.js diff --git a/backend-es/test/snapshots-out/Snapshot.RecursiveBindingGroup01.js b/test/snapshots-out/Snapshot.RecursiveBindingGroup01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.RecursiveBindingGroup01.js rename to test/snapshots-out/Snapshot.RecursiveBindingGroup01.js diff --git a/backend-es/test/snapshots-out/Snapshot.RecursiveBindingGroup02.js b/test/snapshots-out/Snapshot.RecursiveBindingGroup02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.RecursiveBindingGroup02.js rename to test/snapshots-out/Snapshot.RecursiveBindingGroup02.js diff --git a/backend-es/test/snapshots-out/Snapshot.STArray01.js b/test/snapshots-out/Snapshot.STArray01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.STArray01.js rename to test/snapshots-out/Snapshot.STArray01.js diff --git a/backend-es/test/snapshots-out/Snapshot.STArray02.js b/test/snapshots-out/Snapshot.STArray02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.STArray02.js rename to test/snapshots-out/Snapshot.STArray02.js diff --git a/backend-es/test/snapshots-out/Snapshot.STArray03.js b/test/snapshots-out/Snapshot.STArray03.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.STArray03.js rename to test/snapshots-out/Snapshot.STArray03.js diff --git a/backend-es/test/snapshots-out/Snapshot.STArray04.js b/test/snapshots-out/Snapshot.STArray04.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.STArray04.js rename to test/snapshots-out/Snapshot.STArray04.js diff --git a/backend-es/test/snapshots-out/Snapshot.STLoops01.js b/test/snapshots-out/Snapshot.STLoops01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.STLoops01.js rename to test/snapshots-out/Snapshot.STLoops01.js diff --git a/backend-es/test/snapshots-out/Snapshot.STLoops02.js b/test/snapshots-out/Snapshot.STLoops02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.STLoops02.js rename to test/snapshots-out/Snapshot.STLoops02.js diff --git a/backend-es/test/snapshots-out/Snapshot.STLoops03.js b/test/snapshots-out/Snapshot.STLoops03.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.STLoops03.js rename to test/snapshots-out/Snapshot.STLoops03.js diff --git a/backend-es/test/snapshots-out/Snapshot.STObject01.js b/test/snapshots-out/Snapshot.STObject01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.STObject01.js rename to test/snapshots-out/Snapshot.STObject01.js diff --git a/backend-es/test/snapshots-out/Snapshot.STRun01.js b/test/snapshots-out/Snapshot.STRun01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.STRun01.js rename to test/snapshots-out/Snapshot.STRun01.js diff --git a/backend-es/test/snapshots-out/Snapshot.ShowLiterals.js b/test/snapshots-out/Snapshot.ShowLiterals.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.ShowLiterals.js rename to test/snapshots-out/Snapshot.ShowLiterals.js diff --git a/backend-es/test/snapshots-out/Snapshot.StringLiteral01.js b/test/snapshots-out/Snapshot.StringLiteral01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.StringLiteral01.js rename to test/snapshots-out/Snapshot.StringLiteral01.js diff --git a/backend-es/test/snapshots-out/Snapshot.Tco01.js b/test/snapshots-out/Snapshot.Tco01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.Tco01.js rename to test/snapshots-out/Snapshot.Tco01.js diff --git a/backend-es/test/snapshots-out/Snapshot.Tco02.js b/test/snapshots-out/Snapshot.Tco02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.Tco02.js rename to test/snapshots-out/Snapshot.Tco02.js diff --git a/backend-es/test/snapshots-out/Snapshot.Tco03.js b/test/snapshots-out/Snapshot.Tco03.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.Tco03.js rename to test/snapshots-out/Snapshot.Tco03.js diff --git a/backend-es/test/snapshots-out/Snapshot.Tco04.js b/test/snapshots-out/Snapshot.Tco04.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.Tco04.js rename to test/snapshots-out/Snapshot.Tco04.js diff --git a/backend-es/test/snapshots-out/Snapshot.Tco05.js b/test/snapshots-out/Snapshot.Tco05.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.Tco05.js rename to test/snapshots-out/Snapshot.Tco05.js diff --git a/backend-es/test/snapshots-out/Snapshot.Tco06.js b/test/snapshots-out/Snapshot.Tco06.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.Tco06.js rename to test/snapshots-out/Snapshot.Tco06.js diff --git a/backend-es/test/snapshots-out/Snapshot.TopLevelHygiene01.js b/test/snapshots-out/Snapshot.TopLevelHygiene01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.TopLevelHygiene01.js rename to test/snapshots-out/Snapshot.TopLevelHygiene01.js diff --git a/backend-es/test/snapshots-out/Snapshot.TopLevelHygiene02.js b/test/snapshots-out/Snapshot.TopLevelHygiene02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.TopLevelHygiene02.js rename to test/snapshots-out/Snapshot.TopLevelHygiene02.js diff --git a/backend-es/test/snapshots-out/Snapshot.UncurriedEffectFns01.js b/test/snapshots-out/Snapshot.UncurriedEffectFns01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.UncurriedEffectFns01.js rename to test/snapshots-out/Snapshot.UncurriedEffectFns01.js diff --git a/backend-es/test/snapshots-out/Snapshot.UncurriedEffectFns02.js b/test/snapshots-out/Snapshot.UncurriedEffectFns02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.UncurriedEffectFns02.js rename to test/snapshots-out/Snapshot.UncurriedEffectFns02.js diff --git a/backend-es/test/snapshots-out/Snapshot.UncurriedFns01.js b/test/snapshots-out/Snapshot.UncurriedFns01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.UncurriedFns01.js rename to test/snapshots-out/Snapshot.UncurriedFns01.js diff --git a/backend-es/test/snapshots-out/Snapshot.UncurriedLocalAbs01.js b/test/snapshots-out/Snapshot.UncurriedLocalAbs01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.UncurriedLocalAbs01.js rename to test/snapshots-out/Snapshot.UncurriedLocalAbs01.js diff --git a/backend-es/test/snapshots-out/Snapshot.UncurriedSTFns01.js b/test/snapshots-out/Snapshot.UncurriedSTFns01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.UncurriedSTFns01.js rename to test/snapshots-out/Snapshot.UncurriedSTFns01.js diff --git a/backend-es/test/snapshots-out/Snapshot.UncurriedSTFns02.js b/test/snapshots-out/Snapshot.UncurriedSTFns02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.UncurriedSTFns02.js rename to test/snapshots-out/Snapshot.UncurriedSTFns02.js diff --git a/backend-es/test/snapshots-out/Snapshot.UnpackArray01.js b/test/snapshots-out/Snapshot.UnpackArray01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.UnpackArray01.js rename to test/snapshots-out/Snapshot.UnpackArray01.js diff --git a/backend-es/test/snapshots-out/Snapshot.UnsafePerformEffect.js b/test/snapshots-out/Snapshot.UnsafePerformEffect.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.UnsafePerformEffect.js rename to test/snapshots-out/Snapshot.UnsafePerformEffect.js diff --git a/backend-es/test/snapshots-out/Snapshot.VanLaarhovenTraversals01.js b/test/snapshots-out/Snapshot.VanLaarhovenTraversals01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.VanLaarhovenTraversals01.js rename to test/snapshots-out/Snapshot.VanLaarhovenTraversals01.js diff --git a/backend-es/test/snapshots-out/Snapshot.Variant01.js b/test/snapshots-out/Snapshot.Variant01.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.Variant01.js rename to test/snapshots-out/Snapshot.Variant01.js diff --git a/backend-es/test/snapshots-out/Snapshot.Variant02.js b/test/snapshots-out/Snapshot.Variant02.js similarity index 100% rename from backend-es/test/snapshots-out/Snapshot.Variant02.js rename to test/snapshots-out/Snapshot.Variant02.js diff --git a/test/spago.yaml b/test/spago.yaml new file mode 100644 index 00000000..3481a21c --- /dev/null +++ b/test/spago.yaml @@ -0,0 +1,7 @@ +package: + name: test-backend-optimizer + dependencies: + - aff +workspace: + package_set: + registry: 11.10.0 diff --git a/backend-es/test/src/Main.purs b/test/src/Main.purs similarity index 98% rename from backend-es/test/src/Main.purs rename to test/src/Main.purs index 304de2b1..c492f7ea 100644 --- a/backend-es/test/src/Main.purs +++ b/test/src/Main.purs @@ -13,7 +13,6 @@ import Prelude import Ansi.Codes (Color(..)) import Ansi.Output (foreground, withGraphics) import ArgParse.Basic (ArgParser) -import Data.List as List import ArgParse.Basic as ArgParser import Data.Array (findMap) import Data.Array as Array @@ -56,7 +55,7 @@ import PureScript.Backend.Optimizer.Semantics.Foreign (coreForeignSemantics) import PureScript.Backend.Optimizer.Tracer.Printer (printModuleSteps) import PureScript.CST.Lexer (lexToken) import PureScript.CST.Types as CST -import Test.Utils (bufferToUTF8, copyFile, execWithStdin, loadModuleMain, mkdirp, spawnFromParent) +import Test.Utils (bufferToUTF8, copyFile, execWithStdin, loadModuleMain, mkdirp) type TestArgs = { accept :: Boolean @@ -112,10 +111,10 @@ runSnapshotTests { accept, filter, traceIdents } = do -- liftEffect $ Process.chdir $ Path.concat [ "test", "snapshots" ] -- liftEffect $ Process.chdir $ Path.concat [ ".." ] -- spawnFromParent "spago" [ "build --purs-args \"-g corefn\"" ] + Console.log $ "MIKE LOOK HERE" liftEffect $ Process.chdir $ Path.concat [ ".." ] baseDir <- liftEffect Process.cwd liftEffect $ Process.chdir $ Path.concat [ "backend-es", "test", "snapshots", "src" ] - snapshotDir <- liftEffect Process.cwd snapshotPaths <- expandGlobsCwd [ "Snapshot.*.purs" ] outputRef <- liftEffect $ Ref.new Map.empty let snapshotsOut = Path.concat [ "..", "..", "snapshots-out" ] diff --git a/backend-es/test/src/Utils.js b/test/src/Utils.js similarity index 100% rename from backend-es/test/src/Utils.js rename to test/src/Utils.js diff --git a/backend-es/test/src/Utils.purs b/test/src/Utils.purs similarity index 100% rename from backend-es/test/src/Utils.purs rename to test/src/Utils.purs From 84df4aa9ef0f7a62fe50fcfbfbc3476cc3662088 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Fri, 21 Jul 2023 10:16:23 +0300 Subject: [PATCH 08/34] Makes flat structure --- snapshots/.gitignore | 2 + .../snapshots-out/.gitattributes | 0 .../Snapshot.BackendSemantics01.js | 0 .../Snapshot.BackendSemantics02.js | 0 .../Snapshot.BranchSpecialization01.js | 0 .../Snapshot.CaptureDerefRegression01.js | 0 .../snapshots-out/Snapshot.CaseArray.js | 0 .../snapshots-out/Snapshot.CaseBoolean.js | 0 .../snapshots-out/Snapshot.CaseChar.js | 0 .../snapshots-out/Snapshot.CaseGrafting.js | 0 .../snapshots-out/Snapshot.CaseGuarded.js | 0 .../snapshots-out/Snapshot.CaseHeuristics.js | 0 .../snapshots-out/Snapshot.CaseInt.js | 0 .../snapshots-out/Snapshot.CaseJacobs.js | 0 .../snapshots-out/Snapshot.CaseLeafTco.js | 0 .../snapshots-out/Snapshot.CaseMulti.js | 0 .../snapshots-out/Snapshot.CaseNamed.js | 0 .../snapshots-out/Snapshot.CaseNewtype.js | 0 .../snapshots-out/Snapshot.CaseNumber.js | 0 .../snapshots-out/Snapshot.CasePartial.js | 0 .../snapshots-out/Snapshot.CaseProduct.js | 0 .../snapshots-out/Snapshot.CaseRecord.js | 0 .../Snapshot.CaseRedBlackTree.js | 0 .../snapshots-out/Snapshot.CaseString.js | 0 .../snapshots-out/Snapshot.CaseSum.js | 0 .../Snapshot.ConvertableOptions01.js | 0 .../snapshots-out/Snapshot.Cps01.js | 0 .../snapshots-out/Snapshot.Cps02.js | 0 .../Snapshot.DefaultRulesEq01.js | 0 .../Snapshot.DefaultRulesEq02.js | 0 .../Snapshot.DefaultRulesFunction01.js | 0 .../Snapshot.DefaultRulesFunctor01.js | 0 .../Snapshot.DefaultRulesMonoid01.js | 0 .../Snapshot.DefaultRulesSemigroup01.js | 0 .../Snapshot.DefaultRulesSemigroup02.js | 0 .../snapshots-out/Snapshot.EffectBind01.js | 0 .../snapshots-out/Snapshot.EffectBind02.js | 0 .../snapshots-out/Snapshot.EffectBind03.js | 0 .../snapshots-out/Snapshot.EffectBind04.js | 0 .../snapshots-out/Snapshot.EffectBind05.js | 0 .../snapshots-out/Snapshot.EffectBind06.js | 0 .../snapshots-out/Snapshot.EffectBind07.js | 0 .../snapshots-out/Snapshot.EffectBind08.js | 0 .../snapshots-out/Snapshot.EffectBind09.js | 0 .../snapshots-out/Snapshot.EffectLoops01.js | 0 .../snapshots-out/Snapshot.EffectLoops02.js | 0 .../snapshots-out/Snapshot.EffectLoops03.js | 0 .../snapshots-out/Snapshot.EffectPure01.js | 0 .../snapshots-out/Snapshot.EffectRefs01.js | 0 .../snapshots-out/Snapshot.EffectRefs02.js | 0 .../snapshots-out/Snapshot.EffectUnsafe01.js | 0 .../snapshots-out/Snapshot.EsPrecedence01.js | 0 .../snapshots-out/Snapshot.EsPrecedence02.js | 0 .../snapshots-out/Snapshot.EsPrecedence03.js | 0 .../Snapshot.EscapeIdentifiers.js | 0 .../Snapshot.EtaReduceRegression01.js | 0 .../Snapshot.FunctionCompose01.js | 0 .../Snapshot.FunctionCompose02.js | 0 .../Snapshot.FunctionCompose03.js | 0 .../snapshots-out/Snapshot.Fusion01.js | 0 .../snapshots-out/Snapshot.Fusion02.js | 0 .../snapshots-out/Snapshot.HalogenVDomST01.js | 0 .../snapshots-out/Snapshot.HalogenVDomST02.js | 0 .../snapshots-out/Snapshot.HelloWorld01.js | 0 .../snapshots-out/Snapshot.Heterogeneous01.js | 0 .../snapshots-out/Snapshot.Html.js | 0 .../Snapshot.InlineArrayIndex.js | 0 .../snapshots-out/Snapshot.InlineCase01.js | 0 .../snapshots-out/Snapshot.InlineCase02.js | 0 .../Snapshot.InlineDirectivePropSpine01.js | 0 .../Snapshot.InlineDirectivePropSpine02.js | 0 ...pshot.InlineLocalReferenceOpArrayLength.js | 0 .../Snapshot.InlineLocalReferenceOpIsTag.js | 0 .../snapshots-out/Snapshot.InlineNever.js | 0 .../Snapshot.KnownConstructor07.js | 0 .../Snapshot.KnownConstructors01.js | 0 .../Snapshot.KnownConstructors02.js | 0 .../Snapshot.KnownConstructors03.js | 0 .../Snapshot.KnownConstructors04.js | 0 .../Snapshot.KnownConstructors05.js | 0 .../Snapshot.KnownConstructors06.js | 0 .../snapshots-out/Snapshot.Object01.js | 0 .../snapshots-out/Snapshot.PrimOpArray01.js | 0 .../snapshots-out/Snapshot.PrimOpBoolean01.js | 0 .../snapshots-out/Snapshot.PrimOpBoolean02.js | 0 .../snapshots-out/Snapshot.PrimOpChar01.js | 0 .../snapshots-out/Snapshot.PrimOpChar02.js | 0 .../snapshots-out/Snapshot.PrimOpInt01.js | 0 .../snapshots-out/Snapshot.PrimOpInt02.js | 0 .../snapshots-out/Snapshot.PrimOpIntBit01.js | 0 .../snapshots-out/Snapshot.PrimOpIntBit02.js | 0 .../snapshots-out/Snapshot.PrimOpNumber01.js | 0 .../snapshots-out/Snapshot.PrimOpNumber02.js | 0 .../snapshots-out/Snapshot.PrimOpString01.js | 0 .../snapshots-out/Snapshot.PrimOpString02.js | 0 .../snapshots-out/Snapshot.PrimOpString03.js | 0 .../Snapshot.ProfunctorLenses01.js | 0 .../Snapshot.ProfunctorLenses02.js | 0 .../snapshots-out/Snapshot.RecordUnion01.js | 0 .../Snapshot.RecursionSchemes01.js | 0 .../Snapshot.RecursiveBindingGroup01.js | 0 .../Snapshot.RecursiveBindingGroup02.js | 0 .../snapshots-out/Snapshot.STArray01.js | 0 .../snapshots-out/Snapshot.STArray02.js | 0 .../snapshots-out/Snapshot.STArray03.js | 0 .../snapshots-out/Snapshot.STArray04.js | 0 .../snapshots-out/Snapshot.STLoops01.js | 0 .../snapshots-out/Snapshot.STLoops02.js | 0 .../snapshots-out/Snapshot.STLoops03.js | 0 .../snapshots-out/Snapshot.STObject01.js | 0 .../snapshots-out/Snapshot.STRun01.js | 0 .../snapshots-out/Snapshot.ShowLiterals.js | 0 .../snapshots-out/Snapshot.StringLiteral01.js | 0 .../snapshots-out/Snapshot.Tco01.js | 0 .../snapshots-out/Snapshot.Tco02.js | 0 .../snapshots-out/Snapshot.Tco03.js | 0 .../snapshots-out/Snapshot.Tco04.js | 0 .../snapshots-out/Snapshot.Tco05.js | 0 .../snapshots-out/Snapshot.Tco06.js | 0 .../Snapshot.TopLevelHygiene01.js | 0 .../Snapshot.TopLevelHygiene02.js | 0 .../Snapshot.UncurriedEffectFns01.js | 0 .../Snapshot.UncurriedEffectFns02.js | 0 .../snapshots-out/Snapshot.UncurriedFns01.js | 0 .../Snapshot.UncurriedLocalAbs01.js | 0 .../Snapshot.UncurriedSTFns01.js | 0 .../Snapshot.UncurriedSTFns02.js | 0 .../snapshots-out/Snapshot.UnpackArray01.js | 0 .../Snapshot.UnsafePerformEffect.js | 0 .../Snapshot.VanLaarhovenTraversals01.js | 0 .../snapshots-out/Snapshot.Variant01.js | 0 .../snapshots-out/Snapshot.Variant02.js | 0 snapshots/spago.yaml | 56 +++++++++---------- test/.gitignore | 2 + {backend-es => test}/runtime.js | 0 test/spago.yaml | 31 ++++++++++ test/src/Main.purs | 37 +++++------- 137 files changed, 75 insertions(+), 53 deletions(-) create mode 100644 snapshots/.gitignore rename {test => snapshots}/snapshots-out/.gitattributes (100%) rename {test => snapshots}/snapshots-out/Snapshot.BackendSemantics01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.BackendSemantics02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.BranchSpecialization01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.CaptureDerefRegression01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.CaseArray.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.CaseBoolean.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.CaseChar.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.CaseGrafting.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.CaseGuarded.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.CaseHeuristics.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.CaseInt.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.CaseJacobs.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.CaseLeafTco.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.CaseMulti.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.CaseNamed.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.CaseNewtype.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.CaseNumber.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.CasePartial.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.CaseProduct.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.CaseRecord.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.CaseRedBlackTree.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.CaseString.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.CaseSum.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.ConvertableOptions01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.Cps01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.Cps02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.DefaultRulesEq01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.DefaultRulesEq02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.DefaultRulesFunction01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.DefaultRulesFunctor01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.DefaultRulesMonoid01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.DefaultRulesSemigroup01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.DefaultRulesSemigroup02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.EffectBind01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.EffectBind02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.EffectBind03.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.EffectBind04.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.EffectBind05.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.EffectBind06.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.EffectBind07.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.EffectBind08.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.EffectBind09.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.EffectLoops01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.EffectLoops02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.EffectLoops03.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.EffectPure01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.EffectRefs01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.EffectRefs02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.EffectUnsafe01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.EsPrecedence01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.EsPrecedence02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.EsPrecedence03.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.EscapeIdentifiers.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.EtaReduceRegression01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.FunctionCompose01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.FunctionCompose02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.FunctionCompose03.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.Fusion01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.Fusion02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.HalogenVDomST01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.HalogenVDomST02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.HelloWorld01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.Heterogeneous01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.Html.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.InlineArrayIndex.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.InlineCase01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.InlineCase02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.InlineDirectivePropSpine01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.InlineDirectivePropSpine02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.InlineLocalReferenceOpArrayLength.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.InlineLocalReferenceOpIsTag.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.InlineNever.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.KnownConstructor07.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.KnownConstructors01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.KnownConstructors02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.KnownConstructors03.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.KnownConstructors04.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.KnownConstructors05.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.KnownConstructors06.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.Object01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.PrimOpArray01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.PrimOpBoolean01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.PrimOpBoolean02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.PrimOpChar01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.PrimOpChar02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.PrimOpInt01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.PrimOpInt02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.PrimOpIntBit01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.PrimOpIntBit02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.PrimOpNumber01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.PrimOpNumber02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.PrimOpString01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.PrimOpString02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.PrimOpString03.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.ProfunctorLenses01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.ProfunctorLenses02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.RecordUnion01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.RecursionSchemes01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.RecursiveBindingGroup01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.RecursiveBindingGroup02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.STArray01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.STArray02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.STArray03.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.STArray04.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.STLoops01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.STLoops02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.STLoops03.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.STObject01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.STRun01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.ShowLiterals.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.StringLiteral01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.Tco01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.Tco02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.Tco03.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.Tco04.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.Tco05.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.Tco06.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.TopLevelHygiene01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.TopLevelHygiene02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.UncurriedEffectFns01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.UncurriedEffectFns02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.UncurriedFns01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.UncurriedLocalAbs01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.UncurriedSTFns01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.UncurriedSTFns02.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.UnpackArray01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.UnsafePerformEffect.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.VanLaarhovenTraversals01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.Variant01.js (100%) rename {test => snapshots}/snapshots-out/Snapshot.Variant02.js (100%) rename {backend-es => test}/runtime.js (100%) diff --git a/snapshots/.gitignore b/snapshots/.gitignore new file mode 100644 index 00000000..db442620 --- /dev/null +++ b/snapshots/.gitignore @@ -0,0 +1,2 @@ +output +.spago \ No newline at end of file diff --git a/test/snapshots-out/.gitattributes b/snapshots/snapshots-out/.gitattributes similarity index 100% rename from test/snapshots-out/.gitattributes rename to snapshots/snapshots-out/.gitattributes diff --git a/test/snapshots-out/Snapshot.BackendSemantics01.js b/snapshots/snapshots-out/Snapshot.BackendSemantics01.js similarity index 100% rename from test/snapshots-out/Snapshot.BackendSemantics01.js rename to snapshots/snapshots-out/Snapshot.BackendSemantics01.js diff --git a/test/snapshots-out/Snapshot.BackendSemantics02.js b/snapshots/snapshots-out/Snapshot.BackendSemantics02.js similarity index 100% rename from test/snapshots-out/Snapshot.BackendSemantics02.js rename to snapshots/snapshots-out/Snapshot.BackendSemantics02.js diff --git a/test/snapshots-out/Snapshot.BranchSpecialization01.js b/snapshots/snapshots-out/Snapshot.BranchSpecialization01.js similarity index 100% rename from test/snapshots-out/Snapshot.BranchSpecialization01.js rename to snapshots/snapshots-out/Snapshot.BranchSpecialization01.js diff --git a/test/snapshots-out/Snapshot.CaptureDerefRegression01.js b/snapshots/snapshots-out/Snapshot.CaptureDerefRegression01.js similarity index 100% rename from test/snapshots-out/Snapshot.CaptureDerefRegression01.js rename to snapshots/snapshots-out/Snapshot.CaptureDerefRegression01.js diff --git a/test/snapshots-out/Snapshot.CaseArray.js b/snapshots/snapshots-out/Snapshot.CaseArray.js similarity index 100% rename from test/snapshots-out/Snapshot.CaseArray.js rename to snapshots/snapshots-out/Snapshot.CaseArray.js diff --git a/test/snapshots-out/Snapshot.CaseBoolean.js b/snapshots/snapshots-out/Snapshot.CaseBoolean.js similarity index 100% rename from test/snapshots-out/Snapshot.CaseBoolean.js rename to snapshots/snapshots-out/Snapshot.CaseBoolean.js diff --git a/test/snapshots-out/Snapshot.CaseChar.js b/snapshots/snapshots-out/Snapshot.CaseChar.js similarity index 100% rename from test/snapshots-out/Snapshot.CaseChar.js rename to snapshots/snapshots-out/Snapshot.CaseChar.js diff --git a/test/snapshots-out/Snapshot.CaseGrafting.js b/snapshots/snapshots-out/Snapshot.CaseGrafting.js similarity index 100% rename from test/snapshots-out/Snapshot.CaseGrafting.js rename to snapshots/snapshots-out/Snapshot.CaseGrafting.js diff --git a/test/snapshots-out/Snapshot.CaseGuarded.js b/snapshots/snapshots-out/Snapshot.CaseGuarded.js similarity index 100% rename from test/snapshots-out/Snapshot.CaseGuarded.js rename to snapshots/snapshots-out/Snapshot.CaseGuarded.js diff --git a/test/snapshots-out/Snapshot.CaseHeuristics.js b/snapshots/snapshots-out/Snapshot.CaseHeuristics.js similarity index 100% rename from test/snapshots-out/Snapshot.CaseHeuristics.js rename to snapshots/snapshots-out/Snapshot.CaseHeuristics.js diff --git a/test/snapshots-out/Snapshot.CaseInt.js b/snapshots/snapshots-out/Snapshot.CaseInt.js similarity index 100% rename from test/snapshots-out/Snapshot.CaseInt.js rename to snapshots/snapshots-out/Snapshot.CaseInt.js diff --git a/test/snapshots-out/Snapshot.CaseJacobs.js b/snapshots/snapshots-out/Snapshot.CaseJacobs.js similarity index 100% rename from test/snapshots-out/Snapshot.CaseJacobs.js rename to snapshots/snapshots-out/Snapshot.CaseJacobs.js diff --git a/test/snapshots-out/Snapshot.CaseLeafTco.js b/snapshots/snapshots-out/Snapshot.CaseLeafTco.js similarity index 100% rename from test/snapshots-out/Snapshot.CaseLeafTco.js rename to snapshots/snapshots-out/Snapshot.CaseLeafTco.js diff --git a/test/snapshots-out/Snapshot.CaseMulti.js b/snapshots/snapshots-out/Snapshot.CaseMulti.js similarity index 100% rename from test/snapshots-out/Snapshot.CaseMulti.js rename to snapshots/snapshots-out/Snapshot.CaseMulti.js diff --git a/test/snapshots-out/Snapshot.CaseNamed.js b/snapshots/snapshots-out/Snapshot.CaseNamed.js similarity index 100% rename from test/snapshots-out/Snapshot.CaseNamed.js rename to snapshots/snapshots-out/Snapshot.CaseNamed.js diff --git a/test/snapshots-out/Snapshot.CaseNewtype.js b/snapshots/snapshots-out/Snapshot.CaseNewtype.js similarity index 100% rename from test/snapshots-out/Snapshot.CaseNewtype.js rename to snapshots/snapshots-out/Snapshot.CaseNewtype.js diff --git a/test/snapshots-out/Snapshot.CaseNumber.js b/snapshots/snapshots-out/Snapshot.CaseNumber.js similarity index 100% rename from test/snapshots-out/Snapshot.CaseNumber.js rename to snapshots/snapshots-out/Snapshot.CaseNumber.js diff --git a/test/snapshots-out/Snapshot.CasePartial.js b/snapshots/snapshots-out/Snapshot.CasePartial.js similarity index 100% rename from test/snapshots-out/Snapshot.CasePartial.js rename to snapshots/snapshots-out/Snapshot.CasePartial.js diff --git a/test/snapshots-out/Snapshot.CaseProduct.js b/snapshots/snapshots-out/Snapshot.CaseProduct.js similarity index 100% rename from test/snapshots-out/Snapshot.CaseProduct.js rename to snapshots/snapshots-out/Snapshot.CaseProduct.js diff --git a/test/snapshots-out/Snapshot.CaseRecord.js b/snapshots/snapshots-out/Snapshot.CaseRecord.js similarity index 100% rename from test/snapshots-out/Snapshot.CaseRecord.js rename to snapshots/snapshots-out/Snapshot.CaseRecord.js diff --git a/test/snapshots-out/Snapshot.CaseRedBlackTree.js b/snapshots/snapshots-out/Snapshot.CaseRedBlackTree.js similarity index 100% rename from test/snapshots-out/Snapshot.CaseRedBlackTree.js rename to snapshots/snapshots-out/Snapshot.CaseRedBlackTree.js diff --git a/test/snapshots-out/Snapshot.CaseString.js b/snapshots/snapshots-out/Snapshot.CaseString.js similarity index 100% rename from test/snapshots-out/Snapshot.CaseString.js rename to snapshots/snapshots-out/Snapshot.CaseString.js diff --git a/test/snapshots-out/Snapshot.CaseSum.js b/snapshots/snapshots-out/Snapshot.CaseSum.js similarity index 100% rename from test/snapshots-out/Snapshot.CaseSum.js rename to snapshots/snapshots-out/Snapshot.CaseSum.js diff --git a/test/snapshots-out/Snapshot.ConvertableOptions01.js b/snapshots/snapshots-out/Snapshot.ConvertableOptions01.js similarity index 100% rename from test/snapshots-out/Snapshot.ConvertableOptions01.js rename to snapshots/snapshots-out/Snapshot.ConvertableOptions01.js diff --git a/test/snapshots-out/Snapshot.Cps01.js b/snapshots/snapshots-out/Snapshot.Cps01.js similarity index 100% rename from test/snapshots-out/Snapshot.Cps01.js rename to snapshots/snapshots-out/Snapshot.Cps01.js diff --git a/test/snapshots-out/Snapshot.Cps02.js b/snapshots/snapshots-out/Snapshot.Cps02.js similarity index 100% rename from test/snapshots-out/Snapshot.Cps02.js rename to snapshots/snapshots-out/Snapshot.Cps02.js diff --git a/test/snapshots-out/Snapshot.DefaultRulesEq01.js b/snapshots/snapshots-out/Snapshot.DefaultRulesEq01.js similarity index 100% rename from test/snapshots-out/Snapshot.DefaultRulesEq01.js rename to snapshots/snapshots-out/Snapshot.DefaultRulesEq01.js diff --git a/test/snapshots-out/Snapshot.DefaultRulesEq02.js b/snapshots/snapshots-out/Snapshot.DefaultRulesEq02.js similarity index 100% rename from test/snapshots-out/Snapshot.DefaultRulesEq02.js rename to snapshots/snapshots-out/Snapshot.DefaultRulesEq02.js diff --git a/test/snapshots-out/Snapshot.DefaultRulesFunction01.js b/snapshots/snapshots-out/Snapshot.DefaultRulesFunction01.js similarity index 100% rename from test/snapshots-out/Snapshot.DefaultRulesFunction01.js rename to snapshots/snapshots-out/Snapshot.DefaultRulesFunction01.js diff --git a/test/snapshots-out/Snapshot.DefaultRulesFunctor01.js b/snapshots/snapshots-out/Snapshot.DefaultRulesFunctor01.js similarity index 100% rename from test/snapshots-out/Snapshot.DefaultRulesFunctor01.js rename to snapshots/snapshots-out/Snapshot.DefaultRulesFunctor01.js diff --git a/test/snapshots-out/Snapshot.DefaultRulesMonoid01.js b/snapshots/snapshots-out/Snapshot.DefaultRulesMonoid01.js similarity index 100% rename from test/snapshots-out/Snapshot.DefaultRulesMonoid01.js rename to snapshots/snapshots-out/Snapshot.DefaultRulesMonoid01.js diff --git a/test/snapshots-out/Snapshot.DefaultRulesSemigroup01.js b/snapshots/snapshots-out/Snapshot.DefaultRulesSemigroup01.js similarity index 100% rename from test/snapshots-out/Snapshot.DefaultRulesSemigroup01.js rename to snapshots/snapshots-out/Snapshot.DefaultRulesSemigroup01.js diff --git a/test/snapshots-out/Snapshot.DefaultRulesSemigroup02.js b/snapshots/snapshots-out/Snapshot.DefaultRulesSemigroup02.js similarity index 100% rename from test/snapshots-out/Snapshot.DefaultRulesSemigroup02.js rename to snapshots/snapshots-out/Snapshot.DefaultRulesSemigroup02.js diff --git a/test/snapshots-out/Snapshot.EffectBind01.js b/snapshots/snapshots-out/Snapshot.EffectBind01.js similarity index 100% rename from test/snapshots-out/Snapshot.EffectBind01.js rename to snapshots/snapshots-out/Snapshot.EffectBind01.js diff --git a/test/snapshots-out/Snapshot.EffectBind02.js b/snapshots/snapshots-out/Snapshot.EffectBind02.js similarity index 100% rename from test/snapshots-out/Snapshot.EffectBind02.js rename to snapshots/snapshots-out/Snapshot.EffectBind02.js diff --git a/test/snapshots-out/Snapshot.EffectBind03.js b/snapshots/snapshots-out/Snapshot.EffectBind03.js similarity index 100% rename from test/snapshots-out/Snapshot.EffectBind03.js rename to snapshots/snapshots-out/Snapshot.EffectBind03.js diff --git a/test/snapshots-out/Snapshot.EffectBind04.js b/snapshots/snapshots-out/Snapshot.EffectBind04.js similarity index 100% rename from test/snapshots-out/Snapshot.EffectBind04.js rename to snapshots/snapshots-out/Snapshot.EffectBind04.js diff --git a/test/snapshots-out/Snapshot.EffectBind05.js b/snapshots/snapshots-out/Snapshot.EffectBind05.js similarity index 100% rename from test/snapshots-out/Snapshot.EffectBind05.js rename to snapshots/snapshots-out/Snapshot.EffectBind05.js diff --git a/test/snapshots-out/Snapshot.EffectBind06.js b/snapshots/snapshots-out/Snapshot.EffectBind06.js similarity index 100% rename from test/snapshots-out/Snapshot.EffectBind06.js rename to snapshots/snapshots-out/Snapshot.EffectBind06.js diff --git a/test/snapshots-out/Snapshot.EffectBind07.js b/snapshots/snapshots-out/Snapshot.EffectBind07.js similarity index 100% rename from test/snapshots-out/Snapshot.EffectBind07.js rename to snapshots/snapshots-out/Snapshot.EffectBind07.js diff --git a/test/snapshots-out/Snapshot.EffectBind08.js b/snapshots/snapshots-out/Snapshot.EffectBind08.js similarity index 100% rename from test/snapshots-out/Snapshot.EffectBind08.js rename to snapshots/snapshots-out/Snapshot.EffectBind08.js diff --git a/test/snapshots-out/Snapshot.EffectBind09.js b/snapshots/snapshots-out/Snapshot.EffectBind09.js similarity index 100% rename from test/snapshots-out/Snapshot.EffectBind09.js rename to snapshots/snapshots-out/Snapshot.EffectBind09.js diff --git a/test/snapshots-out/Snapshot.EffectLoops01.js b/snapshots/snapshots-out/Snapshot.EffectLoops01.js similarity index 100% rename from test/snapshots-out/Snapshot.EffectLoops01.js rename to snapshots/snapshots-out/Snapshot.EffectLoops01.js diff --git a/test/snapshots-out/Snapshot.EffectLoops02.js b/snapshots/snapshots-out/Snapshot.EffectLoops02.js similarity index 100% rename from test/snapshots-out/Snapshot.EffectLoops02.js rename to snapshots/snapshots-out/Snapshot.EffectLoops02.js diff --git a/test/snapshots-out/Snapshot.EffectLoops03.js b/snapshots/snapshots-out/Snapshot.EffectLoops03.js similarity index 100% rename from test/snapshots-out/Snapshot.EffectLoops03.js rename to snapshots/snapshots-out/Snapshot.EffectLoops03.js diff --git a/test/snapshots-out/Snapshot.EffectPure01.js b/snapshots/snapshots-out/Snapshot.EffectPure01.js similarity index 100% rename from test/snapshots-out/Snapshot.EffectPure01.js rename to snapshots/snapshots-out/Snapshot.EffectPure01.js diff --git a/test/snapshots-out/Snapshot.EffectRefs01.js b/snapshots/snapshots-out/Snapshot.EffectRefs01.js similarity index 100% rename from test/snapshots-out/Snapshot.EffectRefs01.js rename to snapshots/snapshots-out/Snapshot.EffectRefs01.js diff --git a/test/snapshots-out/Snapshot.EffectRefs02.js b/snapshots/snapshots-out/Snapshot.EffectRefs02.js similarity index 100% rename from test/snapshots-out/Snapshot.EffectRefs02.js rename to snapshots/snapshots-out/Snapshot.EffectRefs02.js diff --git a/test/snapshots-out/Snapshot.EffectUnsafe01.js b/snapshots/snapshots-out/Snapshot.EffectUnsafe01.js similarity index 100% rename from test/snapshots-out/Snapshot.EffectUnsafe01.js rename to snapshots/snapshots-out/Snapshot.EffectUnsafe01.js diff --git a/test/snapshots-out/Snapshot.EsPrecedence01.js b/snapshots/snapshots-out/Snapshot.EsPrecedence01.js similarity index 100% rename from test/snapshots-out/Snapshot.EsPrecedence01.js rename to snapshots/snapshots-out/Snapshot.EsPrecedence01.js diff --git a/test/snapshots-out/Snapshot.EsPrecedence02.js b/snapshots/snapshots-out/Snapshot.EsPrecedence02.js similarity index 100% rename from test/snapshots-out/Snapshot.EsPrecedence02.js rename to snapshots/snapshots-out/Snapshot.EsPrecedence02.js diff --git a/test/snapshots-out/Snapshot.EsPrecedence03.js b/snapshots/snapshots-out/Snapshot.EsPrecedence03.js similarity index 100% rename from test/snapshots-out/Snapshot.EsPrecedence03.js rename to snapshots/snapshots-out/Snapshot.EsPrecedence03.js diff --git a/test/snapshots-out/Snapshot.EscapeIdentifiers.js b/snapshots/snapshots-out/Snapshot.EscapeIdentifiers.js similarity index 100% rename from test/snapshots-out/Snapshot.EscapeIdentifiers.js rename to snapshots/snapshots-out/Snapshot.EscapeIdentifiers.js diff --git a/test/snapshots-out/Snapshot.EtaReduceRegression01.js b/snapshots/snapshots-out/Snapshot.EtaReduceRegression01.js similarity index 100% rename from test/snapshots-out/Snapshot.EtaReduceRegression01.js rename to snapshots/snapshots-out/Snapshot.EtaReduceRegression01.js diff --git a/test/snapshots-out/Snapshot.FunctionCompose01.js b/snapshots/snapshots-out/Snapshot.FunctionCompose01.js similarity index 100% rename from test/snapshots-out/Snapshot.FunctionCompose01.js rename to snapshots/snapshots-out/Snapshot.FunctionCompose01.js diff --git a/test/snapshots-out/Snapshot.FunctionCompose02.js b/snapshots/snapshots-out/Snapshot.FunctionCompose02.js similarity index 100% rename from test/snapshots-out/Snapshot.FunctionCompose02.js rename to snapshots/snapshots-out/Snapshot.FunctionCompose02.js diff --git a/test/snapshots-out/Snapshot.FunctionCompose03.js b/snapshots/snapshots-out/Snapshot.FunctionCompose03.js similarity index 100% rename from test/snapshots-out/Snapshot.FunctionCompose03.js rename to snapshots/snapshots-out/Snapshot.FunctionCompose03.js diff --git a/test/snapshots-out/Snapshot.Fusion01.js b/snapshots/snapshots-out/Snapshot.Fusion01.js similarity index 100% rename from test/snapshots-out/Snapshot.Fusion01.js rename to snapshots/snapshots-out/Snapshot.Fusion01.js diff --git a/test/snapshots-out/Snapshot.Fusion02.js b/snapshots/snapshots-out/Snapshot.Fusion02.js similarity index 100% rename from test/snapshots-out/Snapshot.Fusion02.js rename to snapshots/snapshots-out/Snapshot.Fusion02.js diff --git a/test/snapshots-out/Snapshot.HalogenVDomST01.js b/snapshots/snapshots-out/Snapshot.HalogenVDomST01.js similarity index 100% rename from test/snapshots-out/Snapshot.HalogenVDomST01.js rename to snapshots/snapshots-out/Snapshot.HalogenVDomST01.js diff --git a/test/snapshots-out/Snapshot.HalogenVDomST02.js b/snapshots/snapshots-out/Snapshot.HalogenVDomST02.js similarity index 100% rename from test/snapshots-out/Snapshot.HalogenVDomST02.js rename to snapshots/snapshots-out/Snapshot.HalogenVDomST02.js diff --git a/test/snapshots-out/Snapshot.HelloWorld01.js b/snapshots/snapshots-out/Snapshot.HelloWorld01.js similarity index 100% rename from test/snapshots-out/Snapshot.HelloWorld01.js rename to snapshots/snapshots-out/Snapshot.HelloWorld01.js diff --git a/test/snapshots-out/Snapshot.Heterogeneous01.js b/snapshots/snapshots-out/Snapshot.Heterogeneous01.js similarity index 100% rename from test/snapshots-out/Snapshot.Heterogeneous01.js rename to snapshots/snapshots-out/Snapshot.Heterogeneous01.js diff --git a/test/snapshots-out/Snapshot.Html.js b/snapshots/snapshots-out/Snapshot.Html.js similarity index 100% rename from test/snapshots-out/Snapshot.Html.js rename to snapshots/snapshots-out/Snapshot.Html.js diff --git a/test/snapshots-out/Snapshot.InlineArrayIndex.js b/snapshots/snapshots-out/Snapshot.InlineArrayIndex.js similarity index 100% rename from test/snapshots-out/Snapshot.InlineArrayIndex.js rename to snapshots/snapshots-out/Snapshot.InlineArrayIndex.js diff --git a/test/snapshots-out/Snapshot.InlineCase01.js b/snapshots/snapshots-out/Snapshot.InlineCase01.js similarity index 100% rename from test/snapshots-out/Snapshot.InlineCase01.js rename to snapshots/snapshots-out/Snapshot.InlineCase01.js diff --git a/test/snapshots-out/Snapshot.InlineCase02.js b/snapshots/snapshots-out/Snapshot.InlineCase02.js similarity index 100% rename from test/snapshots-out/Snapshot.InlineCase02.js rename to snapshots/snapshots-out/Snapshot.InlineCase02.js diff --git a/test/snapshots-out/Snapshot.InlineDirectivePropSpine01.js b/snapshots/snapshots-out/Snapshot.InlineDirectivePropSpine01.js similarity index 100% rename from test/snapshots-out/Snapshot.InlineDirectivePropSpine01.js rename to snapshots/snapshots-out/Snapshot.InlineDirectivePropSpine01.js diff --git a/test/snapshots-out/Snapshot.InlineDirectivePropSpine02.js b/snapshots/snapshots-out/Snapshot.InlineDirectivePropSpine02.js similarity index 100% rename from test/snapshots-out/Snapshot.InlineDirectivePropSpine02.js rename to snapshots/snapshots-out/Snapshot.InlineDirectivePropSpine02.js diff --git a/test/snapshots-out/Snapshot.InlineLocalReferenceOpArrayLength.js b/snapshots/snapshots-out/Snapshot.InlineLocalReferenceOpArrayLength.js similarity index 100% rename from test/snapshots-out/Snapshot.InlineLocalReferenceOpArrayLength.js rename to snapshots/snapshots-out/Snapshot.InlineLocalReferenceOpArrayLength.js diff --git a/test/snapshots-out/Snapshot.InlineLocalReferenceOpIsTag.js b/snapshots/snapshots-out/Snapshot.InlineLocalReferenceOpIsTag.js similarity index 100% rename from test/snapshots-out/Snapshot.InlineLocalReferenceOpIsTag.js rename to snapshots/snapshots-out/Snapshot.InlineLocalReferenceOpIsTag.js diff --git a/test/snapshots-out/Snapshot.InlineNever.js b/snapshots/snapshots-out/Snapshot.InlineNever.js similarity index 100% rename from test/snapshots-out/Snapshot.InlineNever.js rename to snapshots/snapshots-out/Snapshot.InlineNever.js diff --git a/test/snapshots-out/Snapshot.KnownConstructor07.js b/snapshots/snapshots-out/Snapshot.KnownConstructor07.js similarity index 100% rename from test/snapshots-out/Snapshot.KnownConstructor07.js rename to snapshots/snapshots-out/Snapshot.KnownConstructor07.js diff --git a/test/snapshots-out/Snapshot.KnownConstructors01.js b/snapshots/snapshots-out/Snapshot.KnownConstructors01.js similarity index 100% rename from test/snapshots-out/Snapshot.KnownConstructors01.js rename to snapshots/snapshots-out/Snapshot.KnownConstructors01.js diff --git a/test/snapshots-out/Snapshot.KnownConstructors02.js b/snapshots/snapshots-out/Snapshot.KnownConstructors02.js similarity index 100% rename from test/snapshots-out/Snapshot.KnownConstructors02.js rename to snapshots/snapshots-out/Snapshot.KnownConstructors02.js diff --git a/test/snapshots-out/Snapshot.KnownConstructors03.js b/snapshots/snapshots-out/Snapshot.KnownConstructors03.js similarity index 100% rename from test/snapshots-out/Snapshot.KnownConstructors03.js rename to snapshots/snapshots-out/Snapshot.KnownConstructors03.js diff --git a/test/snapshots-out/Snapshot.KnownConstructors04.js b/snapshots/snapshots-out/Snapshot.KnownConstructors04.js similarity index 100% rename from test/snapshots-out/Snapshot.KnownConstructors04.js rename to snapshots/snapshots-out/Snapshot.KnownConstructors04.js diff --git a/test/snapshots-out/Snapshot.KnownConstructors05.js b/snapshots/snapshots-out/Snapshot.KnownConstructors05.js similarity index 100% rename from test/snapshots-out/Snapshot.KnownConstructors05.js rename to snapshots/snapshots-out/Snapshot.KnownConstructors05.js diff --git a/test/snapshots-out/Snapshot.KnownConstructors06.js b/snapshots/snapshots-out/Snapshot.KnownConstructors06.js similarity index 100% rename from test/snapshots-out/Snapshot.KnownConstructors06.js rename to snapshots/snapshots-out/Snapshot.KnownConstructors06.js diff --git a/test/snapshots-out/Snapshot.Object01.js b/snapshots/snapshots-out/Snapshot.Object01.js similarity index 100% rename from test/snapshots-out/Snapshot.Object01.js rename to snapshots/snapshots-out/Snapshot.Object01.js diff --git a/test/snapshots-out/Snapshot.PrimOpArray01.js b/snapshots/snapshots-out/Snapshot.PrimOpArray01.js similarity index 100% rename from test/snapshots-out/Snapshot.PrimOpArray01.js rename to snapshots/snapshots-out/Snapshot.PrimOpArray01.js diff --git a/test/snapshots-out/Snapshot.PrimOpBoolean01.js b/snapshots/snapshots-out/Snapshot.PrimOpBoolean01.js similarity index 100% rename from test/snapshots-out/Snapshot.PrimOpBoolean01.js rename to snapshots/snapshots-out/Snapshot.PrimOpBoolean01.js diff --git a/test/snapshots-out/Snapshot.PrimOpBoolean02.js b/snapshots/snapshots-out/Snapshot.PrimOpBoolean02.js similarity index 100% rename from test/snapshots-out/Snapshot.PrimOpBoolean02.js rename to snapshots/snapshots-out/Snapshot.PrimOpBoolean02.js diff --git a/test/snapshots-out/Snapshot.PrimOpChar01.js b/snapshots/snapshots-out/Snapshot.PrimOpChar01.js similarity index 100% rename from test/snapshots-out/Snapshot.PrimOpChar01.js rename to snapshots/snapshots-out/Snapshot.PrimOpChar01.js diff --git a/test/snapshots-out/Snapshot.PrimOpChar02.js b/snapshots/snapshots-out/Snapshot.PrimOpChar02.js similarity index 100% rename from test/snapshots-out/Snapshot.PrimOpChar02.js rename to snapshots/snapshots-out/Snapshot.PrimOpChar02.js diff --git a/test/snapshots-out/Snapshot.PrimOpInt01.js b/snapshots/snapshots-out/Snapshot.PrimOpInt01.js similarity index 100% rename from test/snapshots-out/Snapshot.PrimOpInt01.js rename to snapshots/snapshots-out/Snapshot.PrimOpInt01.js diff --git a/test/snapshots-out/Snapshot.PrimOpInt02.js b/snapshots/snapshots-out/Snapshot.PrimOpInt02.js similarity index 100% rename from test/snapshots-out/Snapshot.PrimOpInt02.js rename to snapshots/snapshots-out/Snapshot.PrimOpInt02.js diff --git a/test/snapshots-out/Snapshot.PrimOpIntBit01.js b/snapshots/snapshots-out/Snapshot.PrimOpIntBit01.js similarity index 100% rename from test/snapshots-out/Snapshot.PrimOpIntBit01.js rename to snapshots/snapshots-out/Snapshot.PrimOpIntBit01.js diff --git a/test/snapshots-out/Snapshot.PrimOpIntBit02.js b/snapshots/snapshots-out/Snapshot.PrimOpIntBit02.js similarity index 100% rename from test/snapshots-out/Snapshot.PrimOpIntBit02.js rename to snapshots/snapshots-out/Snapshot.PrimOpIntBit02.js diff --git a/test/snapshots-out/Snapshot.PrimOpNumber01.js b/snapshots/snapshots-out/Snapshot.PrimOpNumber01.js similarity index 100% rename from test/snapshots-out/Snapshot.PrimOpNumber01.js rename to snapshots/snapshots-out/Snapshot.PrimOpNumber01.js diff --git a/test/snapshots-out/Snapshot.PrimOpNumber02.js b/snapshots/snapshots-out/Snapshot.PrimOpNumber02.js similarity index 100% rename from test/snapshots-out/Snapshot.PrimOpNumber02.js rename to snapshots/snapshots-out/Snapshot.PrimOpNumber02.js diff --git a/test/snapshots-out/Snapshot.PrimOpString01.js b/snapshots/snapshots-out/Snapshot.PrimOpString01.js similarity index 100% rename from test/snapshots-out/Snapshot.PrimOpString01.js rename to snapshots/snapshots-out/Snapshot.PrimOpString01.js diff --git a/test/snapshots-out/Snapshot.PrimOpString02.js b/snapshots/snapshots-out/Snapshot.PrimOpString02.js similarity index 100% rename from test/snapshots-out/Snapshot.PrimOpString02.js rename to snapshots/snapshots-out/Snapshot.PrimOpString02.js diff --git a/test/snapshots-out/Snapshot.PrimOpString03.js b/snapshots/snapshots-out/Snapshot.PrimOpString03.js similarity index 100% rename from test/snapshots-out/Snapshot.PrimOpString03.js rename to snapshots/snapshots-out/Snapshot.PrimOpString03.js diff --git a/test/snapshots-out/Snapshot.ProfunctorLenses01.js b/snapshots/snapshots-out/Snapshot.ProfunctorLenses01.js similarity index 100% rename from test/snapshots-out/Snapshot.ProfunctorLenses01.js rename to snapshots/snapshots-out/Snapshot.ProfunctorLenses01.js diff --git a/test/snapshots-out/Snapshot.ProfunctorLenses02.js b/snapshots/snapshots-out/Snapshot.ProfunctorLenses02.js similarity index 100% rename from test/snapshots-out/Snapshot.ProfunctorLenses02.js rename to snapshots/snapshots-out/Snapshot.ProfunctorLenses02.js diff --git a/test/snapshots-out/Snapshot.RecordUnion01.js b/snapshots/snapshots-out/Snapshot.RecordUnion01.js similarity index 100% rename from test/snapshots-out/Snapshot.RecordUnion01.js rename to snapshots/snapshots-out/Snapshot.RecordUnion01.js diff --git a/test/snapshots-out/Snapshot.RecursionSchemes01.js b/snapshots/snapshots-out/Snapshot.RecursionSchemes01.js similarity index 100% rename from test/snapshots-out/Snapshot.RecursionSchemes01.js rename to snapshots/snapshots-out/Snapshot.RecursionSchemes01.js diff --git a/test/snapshots-out/Snapshot.RecursiveBindingGroup01.js b/snapshots/snapshots-out/Snapshot.RecursiveBindingGroup01.js similarity index 100% rename from test/snapshots-out/Snapshot.RecursiveBindingGroup01.js rename to snapshots/snapshots-out/Snapshot.RecursiveBindingGroup01.js diff --git a/test/snapshots-out/Snapshot.RecursiveBindingGroup02.js b/snapshots/snapshots-out/Snapshot.RecursiveBindingGroup02.js similarity index 100% rename from test/snapshots-out/Snapshot.RecursiveBindingGroup02.js rename to snapshots/snapshots-out/Snapshot.RecursiveBindingGroup02.js diff --git a/test/snapshots-out/Snapshot.STArray01.js b/snapshots/snapshots-out/Snapshot.STArray01.js similarity index 100% rename from test/snapshots-out/Snapshot.STArray01.js rename to snapshots/snapshots-out/Snapshot.STArray01.js diff --git a/test/snapshots-out/Snapshot.STArray02.js b/snapshots/snapshots-out/Snapshot.STArray02.js similarity index 100% rename from test/snapshots-out/Snapshot.STArray02.js rename to snapshots/snapshots-out/Snapshot.STArray02.js diff --git a/test/snapshots-out/Snapshot.STArray03.js b/snapshots/snapshots-out/Snapshot.STArray03.js similarity index 100% rename from test/snapshots-out/Snapshot.STArray03.js rename to snapshots/snapshots-out/Snapshot.STArray03.js diff --git a/test/snapshots-out/Snapshot.STArray04.js b/snapshots/snapshots-out/Snapshot.STArray04.js similarity index 100% rename from test/snapshots-out/Snapshot.STArray04.js rename to snapshots/snapshots-out/Snapshot.STArray04.js diff --git a/test/snapshots-out/Snapshot.STLoops01.js b/snapshots/snapshots-out/Snapshot.STLoops01.js similarity index 100% rename from test/snapshots-out/Snapshot.STLoops01.js rename to snapshots/snapshots-out/Snapshot.STLoops01.js diff --git a/test/snapshots-out/Snapshot.STLoops02.js b/snapshots/snapshots-out/Snapshot.STLoops02.js similarity index 100% rename from test/snapshots-out/Snapshot.STLoops02.js rename to snapshots/snapshots-out/Snapshot.STLoops02.js diff --git a/test/snapshots-out/Snapshot.STLoops03.js b/snapshots/snapshots-out/Snapshot.STLoops03.js similarity index 100% rename from test/snapshots-out/Snapshot.STLoops03.js rename to snapshots/snapshots-out/Snapshot.STLoops03.js diff --git a/test/snapshots-out/Snapshot.STObject01.js b/snapshots/snapshots-out/Snapshot.STObject01.js similarity index 100% rename from test/snapshots-out/Snapshot.STObject01.js rename to snapshots/snapshots-out/Snapshot.STObject01.js diff --git a/test/snapshots-out/Snapshot.STRun01.js b/snapshots/snapshots-out/Snapshot.STRun01.js similarity index 100% rename from test/snapshots-out/Snapshot.STRun01.js rename to snapshots/snapshots-out/Snapshot.STRun01.js diff --git a/test/snapshots-out/Snapshot.ShowLiterals.js b/snapshots/snapshots-out/Snapshot.ShowLiterals.js similarity index 100% rename from test/snapshots-out/Snapshot.ShowLiterals.js rename to snapshots/snapshots-out/Snapshot.ShowLiterals.js diff --git a/test/snapshots-out/Snapshot.StringLiteral01.js b/snapshots/snapshots-out/Snapshot.StringLiteral01.js similarity index 100% rename from test/snapshots-out/Snapshot.StringLiteral01.js rename to snapshots/snapshots-out/Snapshot.StringLiteral01.js diff --git a/test/snapshots-out/Snapshot.Tco01.js b/snapshots/snapshots-out/Snapshot.Tco01.js similarity index 100% rename from test/snapshots-out/Snapshot.Tco01.js rename to snapshots/snapshots-out/Snapshot.Tco01.js diff --git a/test/snapshots-out/Snapshot.Tco02.js b/snapshots/snapshots-out/Snapshot.Tco02.js similarity index 100% rename from test/snapshots-out/Snapshot.Tco02.js rename to snapshots/snapshots-out/Snapshot.Tco02.js diff --git a/test/snapshots-out/Snapshot.Tco03.js b/snapshots/snapshots-out/Snapshot.Tco03.js similarity index 100% rename from test/snapshots-out/Snapshot.Tco03.js rename to snapshots/snapshots-out/Snapshot.Tco03.js diff --git a/test/snapshots-out/Snapshot.Tco04.js b/snapshots/snapshots-out/Snapshot.Tco04.js similarity index 100% rename from test/snapshots-out/Snapshot.Tco04.js rename to snapshots/snapshots-out/Snapshot.Tco04.js diff --git a/test/snapshots-out/Snapshot.Tco05.js b/snapshots/snapshots-out/Snapshot.Tco05.js similarity index 100% rename from test/snapshots-out/Snapshot.Tco05.js rename to snapshots/snapshots-out/Snapshot.Tco05.js diff --git a/test/snapshots-out/Snapshot.Tco06.js b/snapshots/snapshots-out/Snapshot.Tco06.js similarity index 100% rename from test/snapshots-out/Snapshot.Tco06.js rename to snapshots/snapshots-out/Snapshot.Tco06.js diff --git a/test/snapshots-out/Snapshot.TopLevelHygiene01.js b/snapshots/snapshots-out/Snapshot.TopLevelHygiene01.js similarity index 100% rename from test/snapshots-out/Snapshot.TopLevelHygiene01.js rename to snapshots/snapshots-out/Snapshot.TopLevelHygiene01.js diff --git a/test/snapshots-out/Snapshot.TopLevelHygiene02.js b/snapshots/snapshots-out/Snapshot.TopLevelHygiene02.js similarity index 100% rename from test/snapshots-out/Snapshot.TopLevelHygiene02.js rename to snapshots/snapshots-out/Snapshot.TopLevelHygiene02.js diff --git a/test/snapshots-out/Snapshot.UncurriedEffectFns01.js b/snapshots/snapshots-out/Snapshot.UncurriedEffectFns01.js similarity index 100% rename from test/snapshots-out/Snapshot.UncurriedEffectFns01.js rename to snapshots/snapshots-out/Snapshot.UncurriedEffectFns01.js diff --git a/test/snapshots-out/Snapshot.UncurriedEffectFns02.js b/snapshots/snapshots-out/Snapshot.UncurriedEffectFns02.js similarity index 100% rename from test/snapshots-out/Snapshot.UncurriedEffectFns02.js rename to snapshots/snapshots-out/Snapshot.UncurriedEffectFns02.js diff --git a/test/snapshots-out/Snapshot.UncurriedFns01.js b/snapshots/snapshots-out/Snapshot.UncurriedFns01.js similarity index 100% rename from test/snapshots-out/Snapshot.UncurriedFns01.js rename to snapshots/snapshots-out/Snapshot.UncurriedFns01.js diff --git a/test/snapshots-out/Snapshot.UncurriedLocalAbs01.js b/snapshots/snapshots-out/Snapshot.UncurriedLocalAbs01.js similarity index 100% rename from test/snapshots-out/Snapshot.UncurriedLocalAbs01.js rename to snapshots/snapshots-out/Snapshot.UncurriedLocalAbs01.js diff --git a/test/snapshots-out/Snapshot.UncurriedSTFns01.js b/snapshots/snapshots-out/Snapshot.UncurriedSTFns01.js similarity index 100% rename from test/snapshots-out/Snapshot.UncurriedSTFns01.js rename to snapshots/snapshots-out/Snapshot.UncurriedSTFns01.js diff --git a/test/snapshots-out/Snapshot.UncurriedSTFns02.js b/snapshots/snapshots-out/Snapshot.UncurriedSTFns02.js similarity index 100% rename from test/snapshots-out/Snapshot.UncurriedSTFns02.js rename to snapshots/snapshots-out/Snapshot.UncurriedSTFns02.js diff --git a/test/snapshots-out/Snapshot.UnpackArray01.js b/snapshots/snapshots-out/Snapshot.UnpackArray01.js similarity index 100% rename from test/snapshots-out/Snapshot.UnpackArray01.js rename to snapshots/snapshots-out/Snapshot.UnpackArray01.js diff --git a/test/snapshots-out/Snapshot.UnsafePerformEffect.js b/snapshots/snapshots-out/Snapshot.UnsafePerformEffect.js similarity index 100% rename from test/snapshots-out/Snapshot.UnsafePerformEffect.js rename to snapshots/snapshots-out/Snapshot.UnsafePerformEffect.js diff --git a/test/snapshots-out/Snapshot.VanLaarhovenTraversals01.js b/snapshots/snapshots-out/Snapshot.VanLaarhovenTraversals01.js similarity index 100% rename from test/snapshots-out/Snapshot.VanLaarhovenTraversals01.js rename to snapshots/snapshots-out/Snapshot.VanLaarhovenTraversals01.js diff --git a/test/snapshots-out/Snapshot.Variant01.js b/snapshots/snapshots-out/Snapshot.Variant01.js similarity index 100% rename from test/snapshots-out/Snapshot.Variant01.js rename to snapshots/snapshots-out/Snapshot.Variant01.js diff --git a/test/snapshots-out/Snapshot.Variant02.js b/snapshots/snapshots-out/Snapshot.Variant02.js similarity index 100% rename from test/snapshots-out/Snapshot.Variant02.js rename to snapshots/snapshots-out/Snapshot.Variant02.js diff --git a/snapshots/spago.yaml b/snapshots/spago.yaml index 0b7a947e..a7bfc409 100644 --- a/snapshots/spago.yaml +++ b/snapshots/spago.yaml @@ -1,33 +1,31 @@ package: - name: "snapshots-backend-optimizer" + name: snapshots-backend-optimizer dependencies: - - "arrays" - - "console" - - "convertable-options" - - "effect" - - "either" - - "exceptions" - - "exists" - - "foldable-traversable" - - "foreign-object" - - "functions" - - "heterogeneous" - - "identity" - - "integers" - - "lists" - - "maybe" - - "partial" - - "prelude" - - "profunctor-lenses" - - "record" - - "refs" - - "safe-coerce" - - "st" - - "strings" - - "tuples" - - "type-equality" - - "unsafe-coerce" - - "variant" + - aff + - lib-backend-optimizer + - external-backend-optimizer + - backend-optimizer workspace: package_set: - registry: 11.10.0 \ No newline at end of file + registry: 11.10.0 + extra_packages: + lib-backend-optimizer: + path: ../lib + external-backend-optimizer: + path: ../external + backend-optimizer: + path: ../backend-es + node-glob-basic: + dependencies: + - "aff" + - "console" + - "effect" + - "lists" + - "maybe" + - "node-fs-aff" + - "node-path" + - "node-process" + - "ordered-collections" + - "strings" + repo: "https://github.com/natefaubion/purescript-node-glob-basic.git" + version: "v1.2.2" diff --git a/test/.gitignore b/test/.gitignore index 44cb9419..673f4174 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -1 +1,3 @@ test-out +output +.spago \ No newline at end of file diff --git a/backend-es/runtime.js b/test/runtime.js similarity index 100% rename from backend-es/runtime.js rename to test/runtime.js diff --git a/test/spago.yaml b/test/spago.yaml index 3481a21c..fb306a9f 100644 --- a/test/spago.yaml +++ b/test/spago.yaml @@ -2,6 +2,37 @@ package: name: test-backend-optimizer dependencies: - aff + - lib-backend-optimizer + - external-backend-optimizer + - backend-optimizer + test: + main: "Test.Main" + dependencies: + - aff + - lib-backend-optimizer + - external-backend-optimizer + - backend-optimizer workspace: package_set: registry: 11.10.0 + extra_packages: + lib-backend-optimizer: + path: ../lib + external-backend-optimizer: + path: ../external + backend-optimizer: + path: ../backend-es + node-glob-basic: + dependencies: + - "aff" + - "console" + - "effect" + - "lists" + - "maybe" + - "node-fs-aff" + - "node-path" + - "node-process" + - "ordered-collections" + - "strings" + repo: "https://github.com/natefaubion/purescript-node-glob-basic.git" + version: "v1.2.2" \ No newline at end of file diff --git a/test/src/Main.purs b/test/src/Main.purs index c492f7ea..572d7a13 100644 --- a/test/src/Main.purs +++ b/test/src/Main.purs @@ -1,12 +1,4 @@ -module Test.Main - ( TraceChoice(..) - , argParser - , hasFails - , main - , matchesFail - , runSnapshotTests - ) - where +module Test.Main where import Prelude @@ -55,7 +47,7 @@ import PureScript.Backend.Optimizer.Semantics.Foreign (coreForeignSemantics) import PureScript.Backend.Optimizer.Tracer.Printer (printModuleSteps) import PureScript.CST.Lexer (lexToken) import PureScript.CST.Types as CST -import Test.Utils (bufferToUTF8, copyFile, execWithStdin, loadModuleMain, mkdirp) +import Test.Utils (bufferToUTF8, copyFile, execWithStdin, loadModuleMain, mkdirp, spawnFromParent) type TestArgs = { accept :: Boolean @@ -108,27 +100,25 @@ main = do runSnapshotTests :: TestArgs -> Aff Unit runSnapshotTests { accept, filter, traceIdents } = do - -- liftEffect $ Process.chdir $ Path.concat [ "test", "snapshots" ] - -- liftEffect $ Process.chdir $ Path.concat [ ".." ] - -- spawnFromParent "spago" [ "build --purs-args \"-g corefn\"" ] - Console.log $ "MIKE LOOK HERE" - liftEffect $ Process.chdir $ Path.concat [ ".." ] - baseDir <- liftEffect Process.cwd - liftEffect $ Process.chdir $ Path.concat [ "backend-es", "test", "snapshots", "src" ] + liftEffect $ Process.chdir $ Path.concat [ "..", "snapshots" ] + spawnFromParent "spago" [ "build --purs-args \"-g corefn\"" ] + liftEffect $ Process.chdir $ Path.concat [ "..", "snapshots" ] + snapshotDir <- liftEffect Process.cwd + liftEffect $ Process.chdir $ Path.concat [ "src" ] snapshotPaths <- expandGlobsCwd [ "Snapshot.*.purs" ] outputRef <- liftEffect $ Ref.new Map.empty - let snapshotsOut = Path.concat [ "..", "..", "snapshots-out" ] - let testOut = Path.concat [ "..", "..", "test-out" ] + let snapshotsOut = Path.concat [ "..", "snapshots-out" ] + let testOut = Path.concat [ "..", "..", "test", "test-out" ] mkdirp snapshotsOut mkdirp testOut - coreFnModulesFromOutput (Path.concat [ "..", "..","..","..", "output" ]) filter >>= case _ of + coreFnModulesFromOutput (Path.concat [ "..", "output" ]) filter >>= case _ of Left errors -> do for_ errors \(Tuple filePath err) -> do Console.error $ filePath <> " " <> err liftEffect $ Process.exit 1 Right coreFnModules -> do let { directives } = parseDirectiveFile defaultDirectives - copyFile (Path.concat [ "..", "..", "..", "runtime.js" ]) (Path.concat [ testOut, "runtime.js" ]) + copyFile (Path.concat [ "..", "..", "test", "runtime.js" ]) (Path.concat [ testOut, "runtime.js" ]) stepsRef <- liftEffect $ Ref.new [] coreFnModules # buildModules { directives @@ -143,11 +133,10 @@ runSnapshotTests { accept, filter, traceIdents } = do mkdirp testFileDir FS.writeTextFile UTF8 testFilePath formatted unless (Set.isEmpty backendMod.foreign) do - let foreignSiblingPath = Path.concat [ "..","..","..","..",fromMaybe path (String.stripSuffix (Pattern (Path.extname path)) path) <> ".js"] + let foreignSiblingPath = Path.concat [ "..", fromMaybe path (String.stripSuffix (Pattern (Path.extname path)) path) <> ".js" ] let foreignOutputPath = Path.concat [ testFileDir, "foreign.js" ] copyFile foreignSiblingPath foreignOutputPath - -- Console.logShow { pth: Path.concat [ snapshotDir, path ], baseDir, path} - when (Set.member (Path.concat [ baseDir, path ]) snapshotPaths) do + when (Set.member (Path.concat [ snapshotDir, path ]) snapshotPaths) do void $ liftEffect $ Ref.modify (Map.insert name (Tuple formatted (hasFails backendMod))) outputRef unless (Array.null optimizationSteps) do liftEffect $ Ref.modify_ (flip Array.snoc (Tuple backendMod.name optimizationSteps)) stepsRef From 7e3849316304e4bc333f6c3987953459310e85de Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Fri, 21 Jul 2023 10:19:47 +0300 Subject: [PATCH 09/34] Changes CI --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 64d4134a..dd353b5d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,7 +39,7 @@ jobs: - name: Cache PureScript dependencies uses: actions/cache@v2 with: - key: ${{ runner.os }}-spago-${{ hashFiles('**/*.dhall') }} + key: ${{ runner.os }}-spago-${{ hashFiles('**/*.yaml') }} path: | .spago output @@ -51,7 +51,7 @@ jobs: run: spago build --censor-build-warnings dependency --strict - name: Run snapshots - run: spago test --censor-build-warnings dependency + run: cd test && spago test --censor-build-warnings dependency - name: Check formatting (Linux only) if: matrix.os == 'ubuntu-latest' From 26b2c57d0ea749eabee98b7ac05f9c993c7acf9c Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Fri, 21 Jul 2023 10:26:48 +0300 Subject: [PATCH 10/34] Moves runtime --- backend-es/package.json | 4 ++-- {test => backend-es}/runtime.js | 0 test/src/Main.purs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename {test => backend-es}/runtime.js (100%) diff --git a/backend-es/package.json b/backend-es/package.json index b38552f2..eaa36d03 100644 --- a/backend-es/package.json +++ b/backend-es/package.json @@ -17,9 +17,9 @@ "preversion": "npm run test && npm run test:output-diff", "version": "echo 'export const version = \"v'$npm_package_version'\";' > ./src/Version.js && git add .", "postversion": "git commit -m \"Bump purs-backend-es version ($npm_package_version)\" && git tag purs-backend-es-v$npm_package_version", - "test": "cd .. && spago test", + "test": "cd ../test && spago test", "test:output-diff": "npm run build && cd ../ && ./backend-es/index.js build --int-tags --output-dir=output-es2 && diff -r output-es output-es2 && rm -r output-es2", - "build": "cd .. && spago build -u '-g corefn,js' && node ./backend-es/index.dev.js bundle-module -m Main --int-tags --platform=node --minify --to=./backend-es/bundle/index.js", + "build": "cd .. && spago build --purs-args '-g corefn,js' && node ./backend-es/index.dev.js bundle-module -m Main --int-tags --platform=node --minify --to=./backend-es/bundle/index.js", "prepublishOnly": "rm -rf bundle ../output ../output-es && npm run build" }, "repository": { diff --git a/test/runtime.js b/backend-es/runtime.js similarity index 100% rename from test/runtime.js rename to backend-es/runtime.js diff --git a/test/src/Main.purs b/test/src/Main.purs index 572d7a13..584c4c4b 100644 --- a/test/src/Main.purs +++ b/test/src/Main.purs @@ -118,7 +118,7 @@ runSnapshotTests { accept, filter, traceIdents } = do liftEffect $ Process.exit 1 Right coreFnModules -> do let { directives } = parseDirectiveFile defaultDirectives - copyFile (Path.concat [ "..", "..", "test", "runtime.js" ]) (Path.concat [ testOut, "runtime.js" ]) + copyFile (Path.concat [ "..", "..", "backend-es", "runtime.js" ]) (Path.concat [ testOut, "runtime.js" ]) stepsRef <- liftEffect $ Ref.new [] coreFnModules # buildModules { directives From 5c87bfcaa9e72719b596c4c493260f85aefb6a3b Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Fri, 21 Jul 2023 11:39:20 +0300 Subject: [PATCH 11/34] Moves package.json to toplevel --- .github/workflows/ci.yml | 6 +- backend-es/package-lock.json | 569 ---- backend-es/package.json | 43 - package-lock.json | 4775 ++++++++++++++++++++++++++++++++++ package.json | 46 +- 5 files changed, 4821 insertions(+), 618 deletions(-) delete mode 100644 backend-es/package-lock.json delete mode 100644 backend-es/package.json create mode 100644 package-lock.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dd353b5d..6e8c5ffa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,7 @@ jobs: ${{ runner.os }}- - name: Setup PureScript dependencies - run: npm i --global purescript@0.15.4 purs-tidy@latest spago@next purescript-psa@latest + run: npm ci - name: Cache PureScript dependencies uses: actions/cache@v2 @@ -48,10 +48,10 @@ jobs: run: spago install - name: Build project - run: spago build --censor-build-warnings dependency --strict + run: npm run build - name: Run snapshots - run: cd test && spago test --censor-build-warnings dependency + run: npm t - name: Check formatting (Linux only) if: matrix.os == 'ubuntu-latest' diff --git a/backend-es/package-lock.json b/backend-es/package-lock.json deleted file mode 100644 index 4a3eba87..00000000 --- a/backend-es/package-lock.json +++ /dev/null @@ -1,569 +0,0 @@ -{ - "name": "purs-backend-es", - "version": "1.3.2", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "purs-backend-es", - "version": "1.3.2", - "license": "MIT", - "bin": { - "purs-backend-es": "index.js" - }, - "devDependencies": { - "esbuild": "^0.15.5" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.5.tgz", - "integrity": "sha512-UHkDFCfSGTuXq08oQltXxSZmH1TXyWsL+4QhZDWvvLl6mEJQqk3u7/wq1LjhrrAXYIllaTtRSzUXl4Olkf2J8A==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.5.tgz", - "integrity": "sha512-VSf6S1QVqvxfIsSKb3UKr3VhUCis7wgDbtF4Vd9z84UJr05/Sp2fRKmzC+CSPG/dNAPPJZ0BTBLTT1Fhd6N9Gg==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/linux-loong64": "0.15.5", - "esbuild-android-64": "0.15.5", - "esbuild-android-arm64": "0.15.5", - "esbuild-darwin-64": "0.15.5", - "esbuild-darwin-arm64": "0.15.5", - "esbuild-freebsd-64": "0.15.5", - "esbuild-freebsd-arm64": "0.15.5", - "esbuild-linux-32": "0.15.5", - "esbuild-linux-64": "0.15.5", - "esbuild-linux-arm": "0.15.5", - "esbuild-linux-arm64": "0.15.5", - "esbuild-linux-mips64le": "0.15.5", - "esbuild-linux-ppc64le": "0.15.5", - "esbuild-linux-riscv64": "0.15.5", - "esbuild-linux-s390x": "0.15.5", - "esbuild-netbsd-64": "0.15.5", - "esbuild-openbsd-64": "0.15.5", - "esbuild-sunos-64": "0.15.5", - "esbuild-windows-32": "0.15.5", - "esbuild-windows-64": "0.15.5", - "esbuild-windows-arm64": "0.15.5" - } - }, - "node_modules/esbuild-android-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.5.tgz", - "integrity": "sha512-dYPPkiGNskvZqmIK29OPxolyY3tp+c47+Fsc2WYSOVjEPWNCHNyqhtFqQadcXMJDQt8eN0NMDukbyQgFcHquXg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-android-arm64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.5.tgz", - "integrity": "sha512-YyEkaQl08ze3cBzI/4Cm1S+rVh8HMOpCdq8B78JLbNFHhzi4NixVN93xDrHZLztlocEYqi45rHHCgA8kZFidFg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.5.tgz", - "integrity": "sha512-Cr0iIqnWKx3ZTvDUAzG0H/u9dWjLE4c2gTtRLz4pqOBGjfjqdcZSfAObFzKTInLLSmD0ZV1I/mshhPoYSBMMCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-arm64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.5.tgz", - "integrity": "sha512-WIfQkocGtFrz7vCu44ypY5YmiFXpsxvz2xqwe688jFfSVCnUsCn2qkEVDo7gT8EpsLOz1J/OmqjExePL1dr1Kg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.5.tgz", - "integrity": "sha512-M5/EfzV2RsMd/wqwR18CELcenZ8+fFxQAAEO7TJKDmP3knhWSbD72ILzrXFMMwshlPAS1ShCZ90jsxkm+8FlaA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-arm64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.5.tgz", - "integrity": "sha512-2JQQ5Qs9J0440F/n/aUBNvY6lTo4XP/4lt1TwDfHuo0DY3w5++anw+jTjfouLzbJmFFiwmX7SmUhMnysocx96w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-32": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.5.tgz", - "integrity": "sha512-gO9vNnIN0FTUGjvTFucIXtBSr1Woymmx/aHQtuU+2OllGU6YFLs99960UD4Dib1kFovVgs59MTXwpFdVoSMZoQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.5.tgz", - "integrity": "sha512-ne0GFdNLsm4veXbTnYAWjbx3shpNKZJUd6XpNbKNUZaNllDZfYQt0/zRqOg0sc7O8GQ+PjSMv9IpIEULXVTVmg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.5.tgz", - "integrity": "sha512-wvAoHEN+gJ/22gnvhZnS/+2H14HyAxM07m59RSLn3iXrQsdS518jnEWRBnJz3fR6BJa+VUTo0NxYjGaNt7RA7Q==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.5.tgz", - "integrity": "sha512-7EgFyP2zjO065XTfdCxiXVEk+f83RQ1JsryN1X/VSX2li9rnHAt2swRbpoz5Vlrl6qjHrCmq5b6yxD13z6RheA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-mips64le": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.5.tgz", - "integrity": "sha512-KdnSkHxWrJ6Y40ABu+ipTZeRhFtc8dowGyFsZY5prsmMSr1ZTG9zQawguN4/tunJ0wy3+kD54GaGwdcpwWAvZQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-ppc64le": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.5.tgz", - "integrity": "sha512-QdRHGeZ2ykl5P0KRmfGBZIHmqcwIsUKWmmpZTOq573jRWwmpfRmS7xOhmDHBj9pxv+6qRMH8tLr2fe+ZKQvCYw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-riscv64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.5.tgz", - "integrity": "sha512-p+WE6RX+jNILsf+exR29DwgV6B73khEQV0qWUbzxaycxawZ8NE0wA6HnnTxbiw5f4Gx9sJDUBemh9v49lKOORA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-s390x": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.5.tgz", - "integrity": "sha512-J2ngOB4cNzmqLHh6TYMM/ips8aoZIuzxJnDdWutBw5482jGXiOzsPoEF4j2WJ2mGnm7FBCO4StGcwzOgic70JQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-netbsd-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.5.tgz", - "integrity": "sha512-MmKUYGDizYjFia0Rwt8oOgmiFH7zaYlsoQ3tIOfPxOqLssAsEgG0MUdRDm5lliqjiuoog8LyDu9srQk5YwWF3w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-openbsd-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.5.tgz", - "integrity": "sha512-2mMFfkLk3oPWfopA9Plj4hyhqHNuGyp5KQyTT9Rc8hFd8wAn5ZrbJg+gNcLMo2yzf8Uiu0RT6G9B15YN9WQyMA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-sunos-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.5.tgz", - "integrity": "sha512-2sIzhMUfLNoD+rdmV6AacilCHSxZIoGAU2oT7XmJ0lXcZWnCvCtObvO6D4puxX9YRE97GodciRGDLBaiC6x1SA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-32": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.5.tgz", - "integrity": "sha512-e+duNED9UBop7Vnlap6XKedA/53lIi12xv2ebeNS4gFmu7aKyTrok7DPIZyU5w/ftHD4MUDs5PJUkQPP9xJRzg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.5.tgz", - "integrity": "sha512-v+PjvNtSASHOjPDMIai9Yi+aP+Vwox+3WVdg2JB8N9aivJ7lyhp4NVU+J0MV2OkWFPnVO8AE/7xH+72ibUUEnw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-arm64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.5.tgz", - "integrity": "sha512-Yz8w/D8CUPYstvVQujByu6mlf48lKmXkq6bkeSZZxTA626efQOJb26aDGLzmFWx6eg/FwrXgt6SZs9V8Pwy/aA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - } - }, - "dependencies": { - "@esbuild/linux-loong64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.5.tgz", - "integrity": "sha512-UHkDFCfSGTuXq08oQltXxSZmH1TXyWsL+4QhZDWvvLl6mEJQqk3u7/wq1LjhrrAXYIllaTtRSzUXl4Olkf2J8A==", - "dev": true, - "optional": true - }, - "esbuild": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.5.tgz", - "integrity": "sha512-VSf6S1QVqvxfIsSKb3UKr3VhUCis7wgDbtF4Vd9z84UJr05/Sp2fRKmzC+CSPG/dNAPPJZ0BTBLTT1Fhd6N9Gg==", - "dev": true, - "requires": { - "@esbuild/linux-loong64": "0.15.5", - "esbuild-android-64": "0.15.5", - "esbuild-android-arm64": "0.15.5", - "esbuild-darwin-64": "0.15.5", - "esbuild-darwin-arm64": "0.15.5", - "esbuild-freebsd-64": "0.15.5", - "esbuild-freebsd-arm64": "0.15.5", - "esbuild-linux-32": "0.15.5", - "esbuild-linux-64": "0.15.5", - "esbuild-linux-arm": "0.15.5", - "esbuild-linux-arm64": "0.15.5", - "esbuild-linux-mips64le": "0.15.5", - "esbuild-linux-ppc64le": "0.15.5", - "esbuild-linux-riscv64": "0.15.5", - "esbuild-linux-s390x": "0.15.5", - "esbuild-netbsd-64": "0.15.5", - "esbuild-openbsd-64": "0.15.5", - "esbuild-sunos-64": "0.15.5", - "esbuild-windows-32": "0.15.5", - "esbuild-windows-64": "0.15.5", - "esbuild-windows-arm64": "0.15.5" - } - }, - "esbuild-android-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.5.tgz", - "integrity": "sha512-dYPPkiGNskvZqmIK29OPxolyY3tp+c47+Fsc2WYSOVjEPWNCHNyqhtFqQadcXMJDQt8eN0NMDukbyQgFcHquXg==", - "dev": true, - "optional": true - }, - "esbuild-android-arm64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.5.tgz", - "integrity": "sha512-YyEkaQl08ze3cBzI/4Cm1S+rVh8HMOpCdq8B78JLbNFHhzi4NixVN93xDrHZLztlocEYqi45rHHCgA8kZFidFg==", - "dev": true, - "optional": true - }, - "esbuild-darwin-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.5.tgz", - "integrity": "sha512-Cr0iIqnWKx3ZTvDUAzG0H/u9dWjLE4c2gTtRLz4pqOBGjfjqdcZSfAObFzKTInLLSmD0ZV1I/mshhPoYSBMMCQ==", - "dev": true, - "optional": true - }, - "esbuild-darwin-arm64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.5.tgz", - "integrity": "sha512-WIfQkocGtFrz7vCu44ypY5YmiFXpsxvz2xqwe688jFfSVCnUsCn2qkEVDo7gT8EpsLOz1J/OmqjExePL1dr1Kg==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.5.tgz", - "integrity": "sha512-M5/EfzV2RsMd/wqwR18CELcenZ8+fFxQAAEO7TJKDmP3knhWSbD72ILzrXFMMwshlPAS1ShCZ90jsxkm+8FlaA==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-arm64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.5.tgz", - "integrity": "sha512-2JQQ5Qs9J0440F/n/aUBNvY6lTo4XP/4lt1TwDfHuo0DY3w5++anw+jTjfouLzbJmFFiwmX7SmUhMnysocx96w==", - "dev": true, - "optional": true - }, - "esbuild-linux-32": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.5.tgz", - "integrity": "sha512-gO9vNnIN0FTUGjvTFucIXtBSr1Woymmx/aHQtuU+2OllGU6YFLs99960UD4Dib1kFovVgs59MTXwpFdVoSMZoQ==", - "dev": true, - "optional": true - }, - "esbuild-linux-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.5.tgz", - "integrity": "sha512-ne0GFdNLsm4veXbTnYAWjbx3shpNKZJUd6XpNbKNUZaNllDZfYQt0/zRqOg0sc7O8GQ+PjSMv9IpIEULXVTVmg==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.5.tgz", - "integrity": "sha512-wvAoHEN+gJ/22gnvhZnS/+2H14HyAxM07m59RSLn3iXrQsdS518jnEWRBnJz3fR6BJa+VUTo0NxYjGaNt7RA7Q==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.5.tgz", - "integrity": "sha512-7EgFyP2zjO065XTfdCxiXVEk+f83RQ1JsryN1X/VSX2li9rnHAt2swRbpoz5Vlrl6qjHrCmq5b6yxD13z6RheA==", - "dev": true, - "optional": true - }, - "esbuild-linux-mips64le": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.5.tgz", - "integrity": "sha512-KdnSkHxWrJ6Y40ABu+ipTZeRhFtc8dowGyFsZY5prsmMSr1ZTG9zQawguN4/tunJ0wy3+kD54GaGwdcpwWAvZQ==", - "dev": true, - "optional": true - }, - "esbuild-linux-ppc64le": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.5.tgz", - "integrity": "sha512-QdRHGeZ2ykl5P0KRmfGBZIHmqcwIsUKWmmpZTOq573jRWwmpfRmS7xOhmDHBj9pxv+6qRMH8tLr2fe+ZKQvCYw==", - "dev": true, - "optional": true - }, - "esbuild-linux-riscv64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.5.tgz", - "integrity": "sha512-p+WE6RX+jNILsf+exR29DwgV6B73khEQV0qWUbzxaycxawZ8NE0wA6HnnTxbiw5f4Gx9sJDUBemh9v49lKOORA==", - "dev": true, - "optional": true - }, - "esbuild-linux-s390x": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.5.tgz", - "integrity": "sha512-J2ngOB4cNzmqLHh6TYMM/ips8aoZIuzxJnDdWutBw5482jGXiOzsPoEF4j2WJ2mGnm7FBCO4StGcwzOgic70JQ==", - "dev": true, - "optional": true - }, - "esbuild-netbsd-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.5.tgz", - "integrity": "sha512-MmKUYGDizYjFia0Rwt8oOgmiFH7zaYlsoQ3tIOfPxOqLssAsEgG0MUdRDm5lliqjiuoog8LyDu9srQk5YwWF3w==", - "dev": true, - "optional": true - }, - "esbuild-openbsd-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.5.tgz", - "integrity": "sha512-2mMFfkLk3oPWfopA9Plj4hyhqHNuGyp5KQyTT9Rc8hFd8wAn5ZrbJg+gNcLMo2yzf8Uiu0RT6G9B15YN9WQyMA==", - "dev": true, - "optional": true - }, - "esbuild-sunos-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.5.tgz", - "integrity": "sha512-2sIzhMUfLNoD+rdmV6AacilCHSxZIoGAU2oT7XmJ0lXcZWnCvCtObvO6D4puxX9YRE97GodciRGDLBaiC6x1SA==", - "dev": true, - "optional": true - }, - "esbuild-windows-32": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.5.tgz", - "integrity": "sha512-e+duNED9UBop7Vnlap6XKedA/53lIi12xv2ebeNS4gFmu7aKyTrok7DPIZyU5w/ftHD4MUDs5PJUkQPP9xJRzg==", - "dev": true, - "optional": true - }, - "esbuild-windows-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.5.tgz", - "integrity": "sha512-v+PjvNtSASHOjPDMIai9Yi+aP+Vwox+3WVdg2JB8N9aivJ7lyhp4NVU+J0MV2OkWFPnVO8AE/7xH+72ibUUEnw==", - "dev": true, - "optional": true - }, - "esbuild-windows-arm64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.5.tgz", - "integrity": "sha512-Yz8w/D8CUPYstvVQujByu6mlf48lKmXkq6bkeSZZxTA626efQOJb26aDGLzmFWx6eg/FwrXgt6SZs9V8Pwy/aA==", - "dev": true, - "optional": true - } - } -} diff --git a/backend-es/package.json b/backend-es/package.json deleted file mode 100644 index eaa36d03..00000000 --- a/backend-es/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "purs-backend-es", - "version": "1.3.2", - "description": "A modern ECMAScript optimizing backend for PureScript", - "main": "index.js", - "type": "module", - "files": [ - "LICENSE", - "index.js", - "runtime.js", - "bundle/index.js" - ], - "bin": { - "purs-backend-es": "./index.js" - }, - "scripts": { - "preversion": "npm run test && npm run test:output-diff", - "version": "echo 'export const version = \"v'$npm_package_version'\";' > ./src/Version.js && git add .", - "postversion": "git commit -m \"Bump purs-backend-es version ($npm_package_version)\" && git tag purs-backend-es-v$npm_package_version", - "test": "cd ../test && spago test", - "test:output-diff": "npm run build && cd ../ && ./backend-es/index.js build --int-tags --output-dir=output-es2 && diff -r output-es output-es2 && rm -r output-es2", - "build": "cd .. && spago build --purs-args '-g corefn,js' && node ./backend-es/index.dev.js bundle-module -m Main --int-tags --platform=node --minify --to=./backend-es/bundle/index.js", - "prepublishOnly": "rm -rf bundle ../output ../output-es && npm run build" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/aristanetworks/purescript-backend-optimizer.git" - }, - "keywords": [ - "PureScript", - "backend", - "optimizer" - ], - "author": "Arista Networks", - "license": "MIT", - "bugs": { - "url": "https://github.com/aristanetworks/purescript-backend-optimizer/issues" - }, - "homepage": "https://github.com/aristanetworks/purescript-backend-optimizer#readme", - "devDependencies": { - "esbuild": "^0.15.5" - } -} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..e69571af --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4775 @@ +{ + "name": "purs-backend-es", + "version": "1.3.2", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "purs-backend-es", + "version": "1.3.2", + "license": "MIT", + "bin": { + "purs-backend-es": "index.js" + }, + "devDependencies": { + "esbuild": "^0.15.5", + "purescript": "^0.15.10", + "purs-tidy": "^0.10.0", + "spago": "^0.93.8" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.5.tgz", + "integrity": "sha512-UHkDFCfSGTuXq08oQltXxSZmH1TXyWsL+4QhZDWvvLl6mEJQqk3u7/wq1LjhrrAXYIllaTtRSzUXl4Olkf2J8A==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/fs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "dev": true, + "dependencies": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@npmcli/move-file/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", + "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "depd": "^2.0.0", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/buildcheck": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.6.tgz", + "integrity": "sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/byline": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", + "integrity": "sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cacache": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", + "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cpu-features": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.8.tgz", + "integrity": "sha512-BbHBvtYhUhksqTjr6bhNOjGgMnhwhGTQmOoZGD+K7BCaQDCuZl/Ve1ZxUSMRwVC4D/rkCPQ2MAIeYzrWyK7eEg==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "dependencies": { + "buildcheck": "~0.0.6", + "nan": "^2.17.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cyclist": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz", + "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.5.tgz", + "integrity": "sha512-VSf6S1QVqvxfIsSKb3UKr3VhUCis7wgDbtF4Vd9z84UJr05/Sp2fRKmzC+CSPG/dNAPPJZ0BTBLTT1Fhd6N9Gg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/linux-loong64": "0.15.5", + "esbuild-android-64": "0.15.5", + "esbuild-android-arm64": "0.15.5", + "esbuild-darwin-64": "0.15.5", + "esbuild-darwin-arm64": "0.15.5", + "esbuild-freebsd-64": "0.15.5", + "esbuild-freebsd-arm64": "0.15.5", + "esbuild-linux-32": "0.15.5", + "esbuild-linux-64": "0.15.5", + "esbuild-linux-arm": "0.15.5", + "esbuild-linux-arm64": "0.15.5", + "esbuild-linux-mips64le": "0.15.5", + "esbuild-linux-ppc64le": "0.15.5", + "esbuild-linux-riscv64": "0.15.5", + "esbuild-linux-s390x": "0.15.5", + "esbuild-netbsd-64": "0.15.5", + "esbuild-openbsd-64": "0.15.5", + "esbuild-sunos-64": "0.15.5", + "esbuild-windows-32": "0.15.5", + "esbuild-windows-64": "0.15.5", + "esbuild-windows-arm64": "0.15.5" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.5.tgz", + "integrity": "sha512-dYPPkiGNskvZqmIK29OPxolyY3tp+c47+Fsc2WYSOVjEPWNCHNyqhtFqQadcXMJDQt8eN0NMDukbyQgFcHquXg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.5.tgz", + "integrity": "sha512-YyEkaQl08ze3cBzI/4Cm1S+rVh8HMOpCdq8B78JLbNFHhzi4NixVN93xDrHZLztlocEYqi45rHHCgA8kZFidFg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.5.tgz", + "integrity": "sha512-Cr0iIqnWKx3ZTvDUAzG0H/u9dWjLE4c2gTtRLz4pqOBGjfjqdcZSfAObFzKTInLLSmD0ZV1I/mshhPoYSBMMCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.5.tgz", + "integrity": "sha512-WIfQkocGtFrz7vCu44ypY5YmiFXpsxvz2xqwe688jFfSVCnUsCn2qkEVDo7gT8EpsLOz1J/OmqjExePL1dr1Kg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.5.tgz", + "integrity": "sha512-M5/EfzV2RsMd/wqwR18CELcenZ8+fFxQAAEO7TJKDmP3knhWSbD72ILzrXFMMwshlPAS1ShCZ90jsxkm+8FlaA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.5.tgz", + "integrity": "sha512-2JQQ5Qs9J0440F/n/aUBNvY6lTo4XP/4lt1TwDfHuo0DY3w5++anw+jTjfouLzbJmFFiwmX7SmUhMnysocx96w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.5.tgz", + "integrity": "sha512-gO9vNnIN0FTUGjvTFucIXtBSr1Woymmx/aHQtuU+2OllGU6YFLs99960UD4Dib1kFovVgs59MTXwpFdVoSMZoQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.5.tgz", + "integrity": "sha512-ne0GFdNLsm4veXbTnYAWjbx3shpNKZJUd6XpNbKNUZaNllDZfYQt0/zRqOg0sc7O8GQ+PjSMv9IpIEULXVTVmg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.5.tgz", + "integrity": "sha512-wvAoHEN+gJ/22gnvhZnS/+2H14HyAxM07m59RSLn3iXrQsdS518jnEWRBnJz3fR6BJa+VUTo0NxYjGaNt7RA7Q==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.5.tgz", + "integrity": "sha512-7EgFyP2zjO065XTfdCxiXVEk+f83RQ1JsryN1X/VSX2li9rnHAt2swRbpoz5Vlrl6qjHrCmq5b6yxD13z6RheA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.5.tgz", + "integrity": "sha512-KdnSkHxWrJ6Y40ABu+ipTZeRhFtc8dowGyFsZY5prsmMSr1ZTG9zQawguN4/tunJ0wy3+kD54GaGwdcpwWAvZQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.5.tgz", + "integrity": "sha512-QdRHGeZ2ykl5P0KRmfGBZIHmqcwIsUKWmmpZTOq573jRWwmpfRmS7xOhmDHBj9pxv+6qRMH8tLr2fe+ZKQvCYw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.5.tgz", + "integrity": "sha512-p+WE6RX+jNILsf+exR29DwgV6B73khEQV0qWUbzxaycxawZ8NE0wA6HnnTxbiw5f4Gx9sJDUBemh9v49lKOORA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.5.tgz", + "integrity": "sha512-J2ngOB4cNzmqLHh6TYMM/ips8aoZIuzxJnDdWutBw5482jGXiOzsPoEF4j2WJ2mGnm7FBCO4StGcwzOgic70JQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.5.tgz", + "integrity": "sha512-MmKUYGDizYjFia0Rwt8oOgmiFH7zaYlsoQ3tIOfPxOqLssAsEgG0MUdRDm5lliqjiuoog8LyDu9srQk5YwWF3w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.5.tgz", + "integrity": "sha512-2mMFfkLk3oPWfopA9Plj4hyhqHNuGyp5KQyTT9Rc8hFd8wAn5ZrbJg+gNcLMo2yzf8Uiu0RT6G9B15YN9WQyMA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.5.tgz", + "integrity": "sha512-2sIzhMUfLNoD+rdmV6AacilCHSxZIoGAU2oT7XmJ0lXcZWnCvCtObvO6D4puxX9YRE97GodciRGDLBaiC6x1SA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.5.tgz", + "integrity": "sha512-e+duNED9UBop7Vnlap6XKedA/53lIi12xv2ebeNS4gFmu7aKyTrok7DPIZyU5w/ftHD4MUDs5PJUkQPP9xJRzg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.5.tgz", + "integrity": "sha512-v+PjvNtSASHOjPDMIai9Yi+aP+Vwox+3WVdg2JB8N9aivJ7lyhp4NVU+J0MV2OkWFPnVO8AE/7xH+72ibUUEnw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.5.tgz", + "integrity": "sha512-Yz8w/D8CUPYstvVQujByu6mlf48lKmXkq6bkeSZZxTA626efQOJb26aDGLzmFWx6eg/FwrXgt6SZs9V8Pwy/aA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/execa": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz", + "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^3.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": "^8.12.0 || >=9.7.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "node_modules/filesize": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-4.2.1.tgz", + "integrity": "sha512-bP82Hi8VRZX/TUBKfE24iiUGsB/sfm2WUrwTQyAzQrhO3V9IhcBBNBXMyzLY5orACxRyYJ3d2HeRVX+eFv4lmA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fuse.js": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-6.6.2.tgz", + "integrity": "sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dev": true, + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", + "dev": true + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "dev": true + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-fetch-happen": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/cacache": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-fetch-happen/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-fetch-happen/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-fetch-happen/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-fetch-happen/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/make-fetch-happen/node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/make-fetch-happen/node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/make-fetch-happen/node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/make-fetch-happen/node_modules/ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/unique-filename": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", + "dev": true, + "dependencies": { + "unique-slug": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/unique-slug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "dev": true, + "dependencies": { + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", + "dev": true, + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/nan": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "dev": true, + "optional": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm-run-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", + "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/purescript": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/purescript/-/purescript-0.15.10.tgz", + "integrity": "sha512-USvNla7eWMsIcbcQJ6jNiHduiXzKT+d3Cc9hjTffZ/9fHHZaMUf+k4TXbh+/OtecDEfPu736Ky51VX4bRj4iiA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "purescript-installer": "^0.3.5" + }, + "bin": { + "purs": "purs.bin" + } + }, + "node_modules/purescript-installer": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/purescript-installer/-/purescript-installer-0.3.5.tgz", + "integrity": "sha512-w04BBvW4BSQlspLsZ9Bs5vtUBZqvC4bC+FizC5GUp2/rpmYvXJ0CTf79Q3MKo2A8p1ZjqbhCI+SqdTQ30UZUIQ==", + "dev": true, + "dependencies": { + "byline": "^5.0.0", + "cacache": "^11.3.2", + "chalk": "^2.4.2", + "env-paths": "^2.2.0", + "execa": "^2.0.3", + "filesize": "^4.1.2", + "is-plain-obj": "^2.0.0", + "log-symbols": "^3.0.0", + "log-update": "^4.0.0", + "make-fetch-happen": "^10.0.0", + "minimist": "^1.2.0", + "ms": "^2.1.2", + "once": "^1.4.0", + "rimraf": "^2.6.3", + "semver": "^7.3.7", + "tar": "^6.1.11", + "which": "^1.3.1", + "zen-observable": "^0.8.14" + }, + "bin": { + "install-purescript": "index.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/purs-tidy": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/purs-tidy/-/purs-tidy-0.10.0.tgz", + "integrity": "sha512-ULbJfBHRngczYwcOzugytRiNy+Guy2VXoAG1jMtGaSFEaUZk1lZkKU11t8jIZTrDdOrkgqlWCZLi3mfcHvdimA==", + "dev": true, + "bin": { + "purs-tidy": "bin/index.js" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", + "dev": true, + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dev": true, + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "dev": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/spago": { + "version": "0.93.8", + "resolved": "https://registry.npmjs.org/spago/-/spago-0.93.8.tgz", + "integrity": "sha512-Y909h1xy/fn+DqTBO+O1SUm0sAIMBH7GVOkj9anGLRx4RiKjM0TWVs+/JzlF4ZPE8NqHd1DHGz8cG3oddou/+g==", + "dev": true, + "dependencies": { + "env-paths": "^3.0.0", + "fast-glob": "^3.2.11", + "fs-extra": "^10.0.0", + "fuse.js": "^6.5.3", + "semver": "^7.3.5", + "spdx-expression-parse": "^3.0.1", + "ssh2": "^1.14.0", + "supports-color": "^9.2.3", + "tar": "^6.1.11", + "tmp": "^0.2.1", + "xhr2": "^0.2.1", + "yaml": "^2.1.1" + }, + "bin": { + "spago": "bin/bundle.js" + } + }, + "node_modules/spago/node_modules/env-paths": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", + "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/spago/node_modules/supports-color": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", + "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "node_modules/ssh2": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.14.0.tgz", + "integrity": "sha512-AqzD1UCqit8tbOKoj6ztDDi1ffJZ2rV2SwlgrVVrHPkV5vWqGJOVp5pmtj18PunkPJAuKQsnInyKV+/Nb2bUnA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "asn1": "^0.2.6", + "bcrypt-pbkdf": "^1.0.2" + }, + "engines": { + "node": ">=10.16.0" + }, + "optionalDependencies": { + "cpu-features": "~0.0.8", + "nan": "^2.17.0" + } + }, + "node_modules/ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tar": { + "version": "6.1.15", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", + "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/tmp/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/xhr2": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.2.1.tgz", + "integrity": "sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", + "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/zen-observable": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", + "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==", + "dev": true + } + }, + "dependencies": { + "@esbuild/linux-loong64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.5.tgz", + "integrity": "sha512-UHkDFCfSGTuXq08oQltXxSZmH1TXyWsL+4QhZDWvvLl6mEJQqk3u7/wq1LjhrrAXYIllaTtRSzUXl4Olkf2J8A==", + "dev": true, + "optional": true + }, + "@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@npmcli/fs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "dev": true, + "requires": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + } + }, + "@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "agentkeepalive": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", + "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "depd": "^2.0.0", + "humanize-ms": "^1.2.1" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "buildcheck": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.6.tgz", + "integrity": "sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==", + "dev": true, + "optional": true + }, + "byline": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", + "integrity": "sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==", + "dev": true + }, + "cacache": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", + "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "cpu-features": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.8.tgz", + "integrity": "sha512-BbHBvtYhUhksqTjr6bhNOjGgMnhwhGTQmOoZGD+K7BCaQDCuZl/Ve1ZxUSMRwVC4D/rkCPQ2MAIeYzrWyK7eEg==", + "dev": true, + "optional": true, + "requires": { + "buildcheck": "~0.0.6", + "nan": "^2.17.0" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "cyclist": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz", + "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "requires": { + "iconv-lite": "^0.6.2" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true + }, + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "esbuild": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.5.tgz", + "integrity": "sha512-VSf6S1QVqvxfIsSKb3UKr3VhUCis7wgDbtF4Vd9z84UJr05/Sp2fRKmzC+CSPG/dNAPPJZ0BTBLTT1Fhd6N9Gg==", + "dev": true, + "requires": { + "@esbuild/linux-loong64": "0.15.5", + "esbuild-android-64": "0.15.5", + "esbuild-android-arm64": "0.15.5", + "esbuild-darwin-64": "0.15.5", + "esbuild-darwin-arm64": "0.15.5", + "esbuild-freebsd-64": "0.15.5", + "esbuild-freebsd-arm64": "0.15.5", + "esbuild-linux-32": "0.15.5", + "esbuild-linux-64": "0.15.5", + "esbuild-linux-arm": "0.15.5", + "esbuild-linux-arm64": "0.15.5", + "esbuild-linux-mips64le": "0.15.5", + "esbuild-linux-ppc64le": "0.15.5", + "esbuild-linux-riscv64": "0.15.5", + "esbuild-linux-s390x": "0.15.5", + "esbuild-netbsd-64": "0.15.5", + "esbuild-openbsd-64": "0.15.5", + "esbuild-sunos-64": "0.15.5", + "esbuild-windows-32": "0.15.5", + "esbuild-windows-64": "0.15.5", + "esbuild-windows-arm64": "0.15.5" + } + }, + "esbuild-android-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.5.tgz", + "integrity": "sha512-dYPPkiGNskvZqmIK29OPxolyY3tp+c47+Fsc2WYSOVjEPWNCHNyqhtFqQadcXMJDQt8eN0NMDukbyQgFcHquXg==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.5.tgz", + "integrity": "sha512-YyEkaQl08ze3cBzI/4Cm1S+rVh8HMOpCdq8B78JLbNFHhzi4NixVN93xDrHZLztlocEYqi45rHHCgA8kZFidFg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.5.tgz", + "integrity": "sha512-Cr0iIqnWKx3ZTvDUAzG0H/u9dWjLE4c2gTtRLz4pqOBGjfjqdcZSfAObFzKTInLLSmD0ZV1I/mshhPoYSBMMCQ==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.5.tgz", + "integrity": "sha512-WIfQkocGtFrz7vCu44ypY5YmiFXpsxvz2xqwe688jFfSVCnUsCn2qkEVDo7gT8EpsLOz1J/OmqjExePL1dr1Kg==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.5.tgz", + "integrity": "sha512-M5/EfzV2RsMd/wqwR18CELcenZ8+fFxQAAEO7TJKDmP3knhWSbD72ILzrXFMMwshlPAS1ShCZ90jsxkm+8FlaA==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.5.tgz", + "integrity": "sha512-2JQQ5Qs9J0440F/n/aUBNvY6lTo4XP/4lt1TwDfHuo0DY3w5++anw+jTjfouLzbJmFFiwmX7SmUhMnysocx96w==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.5.tgz", + "integrity": "sha512-gO9vNnIN0FTUGjvTFucIXtBSr1Woymmx/aHQtuU+2OllGU6YFLs99960UD4Dib1kFovVgs59MTXwpFdVoSMZoQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.5.tgz", + "integrity": "sha512-ne0GFdNLsm4veXbTnYAWjbx3shpNKZJUd6XpNbKNUZaNllDZfYQt0/zRqOg0sc7O8GQ+PjSMv9IpIEULXVTVmg==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.5.tgz", + "integrity": "sha512-wvAoHEN+gJ/22gnvhZnS/+2H14HyAxM07m59RSLn3iXrQsdS518jnEWRBnJz3fR6BJa+VUTo0NxYjGaNt7RA7Q==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.5.tgz", + "integrity": "sha512-7EgFyP2zjO065XTfdCxiXVEk+f83RQ1JsryN1X/VSX2li9rnHAt2swRbpoz5Vlrl6qjHrCmq5b6yxD13z6RheA==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.5.tgz", + "integrity": "sha512-KdnSkHxWrJ6Y40ABu+ipTZeRhFtc8dowGyFsZY5prsmMSr1ZTG9zQawguN4/tunJ0wy3+kD54GaGwdcpwWAvZQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.5.tgz", + "integrity": "sha512-QdRHGeZ2ykl5P0KRmfGBZIHmqcwIsUKWmmpZTOq573jRWwmpfRmS7xOhmDHBj9pxv+6qRMH8tLr2fe+ZKQvCYw==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.5.tgz", + "integrity": "sha512-p+WE6RX+jNILsf+exR29DwgV6B73khEQV0qWUbzxaycxawZ8NE0wA6HnnTxbiw5f4Gx9sJDUBemh9v49lKOORA==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.5.tgz", + "integrity": "sha512-J2ngOB4cNzmqLHh6TYMM/ips8aoZIuzxJnDdWutBw5482jGXiOzsPoEF4j2WJ2mGnm7FBCO4StGcwzOgic70JQ==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.5.tgz", + "integrity": "sha512-MmKUYGDizYjFia0Rwt8oOgmiFH7zaYlsoQ3tIOfPxOqLssAsEgG0MUdRDm5lliqjiuoog8LyDu9srQk5YwWF3w==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.5.tgz", + "integrity": "sha512-2mMFfkLk3oPWfopA9Plj4hyhqHNuGyp5KQyTT9Rc8hFd8wAn5ZrbJg+gNcLMo2yzf8Uiu0RT6G9B15YN9WQyMA==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.5.tgz", + "integrity": "sha512-2sIzhMUfLNoD+rdmV6AacilCHSxZIoGAU2oT7XmJ0lXcZWnCvCtObvO6D4puxX9YRE97GodciRGDLBaiC6x1SA==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.5.tgz", + "integrity": "sha512-e+duNED9UBop7Vnlap6XKedA/53lIi12xv2ebeNS4gFmu7aKyTrok7DPIZyU5w/ftHD4MUDs5PJUkQPP9xJRzg==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.5.tgz", + "integrity": "sha512-v+PjvNtSASHOjPDMIai9Yi+aP+Vwox+3WVdg2JB8N9aivJ7lyhp4NVU+J0MV2OkWFPnVO8AE/7xH+72ibUUEnw==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.5.tgz", + "integrity": "sha512-Yz8w/D8CUPYstvVQujByu6mlf48lKmXkq6bkeSZZxTA626efQOJb26aDGLzmFWx6eg/FwrXgt6SZs9V8Pwy/aA==", + "dev": true, + "optional": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "execa": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz", + "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^3.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "fast-glob": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "filesize": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-4.2.1.tgz", + "integrity": "sha512-bP82Hi8VRZX/TUBKfE24iiUGsB/sfm2WUrwTQyAzQrhO3V9IhcBBNBXMyzLY5orACxRyYJ3d2HeRVX+eFv4lmA==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fuse.js": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-6.6.2.tgz", + "integrity": "sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==", + "dev": true + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "requires": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2" + } + }, + "log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "make-fetch-happen": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "dev": true, + "requires": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "cacache": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "dev": true, + "requires": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "unique-filename": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", + "dev": true, + "requires": { + "unique-slug": "^3.0.0" + } + }, + "unique-slug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "dev": true, + "requires": { + "encoding": "^0.1.13", + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "nan": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "dev": true, + "optional": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "npm-run-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", + "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "dev": true + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "requires": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "purescript": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/purescript/-/purescript-0.15.10.tgz", + "integrity": "sha512-USvNla7eWMsIcbcQJ6jNiHduiXzKT+d3Cc9hjTffZ/9fHHZaMUf+k4TXbh+/OtecDEfPu736Ky51VX4bRj4iiA==", + "dev": true, + "requires": { + "purescript-installer": "^0.3.5" + } + }, + "purescript-installer": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/purescript-installer/-/purescript-installer-0.3.5.tgz", + "integrity": "sha512-w04BBvW4BSQlspLsZ9Bs5vtUBZqvC4bC+FizC5GUp2/rpmYvXJ0CTf79Q3MKo2A8p1ZjqbhCI+SqdTQ30UZUIQ==", + "dev": true, + "requires": { + "byline": "^5.0.0", + "cacache": "^11.3.2", + "chalk": "^2.4.2", + "env-paths": "^2.2.0", + "execa": "^2.0.3", + "filesize": "^4.1.2", + "is-plain-obj": "^2.0.0", + "log-symbols": "^3.0.0", + "log-update": "^4.0.0", + "make-fetch-happen": "^10.0.0", + "minimist": "^1.2.0", + "ms": "^2.1.2", + "once": "^1.4.0", + "rimraf": "^2.6.3", + "semver": "^7.3.7", + "tar": "^6.1.11", + "which": "^1.3.1", + "zen-observable": "^0.8.14" + } + }, + "purs-tidy": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/purs-tidy/-/purs-tidy-0.10.0.tgz", + "integrity": "sha512-ULbJfBHRngczYwcOzugytRiNy+Guy2VXoAG1jMtGaSFEaUZk1lZkKU11t8jIZTrDdOrkgqlWCZLi3mfcHvdimA==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true + }, + "socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dev": true, + "requires": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + } + }, + "socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "dev": true, + "requires": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + } + }, + "spago": { + "version": "0.93.8", + "resolved": "https://registry.npmjs.org/spago/-/spago-0.93.8.tgz", + "integrity": "sha512-Y909h1xy/fn+DqTBO+O1SUm0sAIMBH7GVOkj9anGLRx4RiKjM0TWVs+/JzlF4ZPE8NqHd1DHGz8cG3oddou/+g==", + "dev": true, + "requires": { + "env-paths": "^3.0.0", + "fast-glob": "^3.2.11", + "fs-extra": "^10.0.0", + "fuse.js": "^6.5.3", + "semver": "^7.3.5", + "spdx-expression-parse": "^3.0.1", + "ssh2": "^1.14.0", + "supports-color": "^9.2.3", + "tar": "^6.1.11", + "tmp": "^0.2.1", + "xhr2": "^0.2.1", + "yaml": "^2.1.1" + }, + "dependencies": { + "env-paths": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", + "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", + "dev": true + }, + "supports-color": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", + "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", + "dev": true + } + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "ssh2": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.14.0.tgz", + "integrity": "sha512-AqzD1UCqit8tbOKoj6ztDDi1ffJZ2rV2SwlgrVVrHPkV5vWqGJOVp5pmtj18PunkPJAuKQsnInyKV+/Nb2bUnA==", + "dev": true, + "requires": { + "asn1": "^0.2.6", + "bcrypt-pbkdf": "^1.0.2", + "cpu-features": "~0.0.8", + "nan": "^2.17.0" + } + }, + "ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "tar": { + "version": "6.1.15", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", + "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "xhr2": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.2.1.tgz", + "integrity": "sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yaml": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", + "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "dev": true + }, + "zen-observable": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", + "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==", + "dev": true + } + } +} diff --git a/package.json b/package.json index 401ee6c2..92b1706d 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,48 @@ { - "private": true, + "name": "purs-backend-es", + "version": "1.3.2", + "description": "A modern ECMAScript optimizing backend for PureScript", + "main": "index.js", "type": "module", + "files": [ + "LICENSE", + "index.js", + "runtime.js", + "bundle/index.js" + ], + "bin": { + "purs-backend-es": "./index.js" + }, "scripts": { - "format": "purs-tidy format-in-place src backend-es/src backend-es/test/*.purs", - "format:check": "purs-tidy check src backend-es/src backend-es/test/*.purs" + "preversion": "npm run test && npm run test:output-diff", + "version": "echo 'export const version = \"v'$npm_package_version'\";' > ./src/Version.js && git add .", + "postversion": "git commit -m \"Bump purs-backend-es version ($npm_package_version)\" && git tag purs-backend-es-v$npm_package_version", + "test": "cd test && spago test --censor-build-warnings dependency", + "test:output-diff": "npm run build && ./backend-es/index.js build --int-tags --output-dir=output-es2 && diff -r output-es output-es2 && rm -r output-es2", + "build": "spago build --censor-build-warnings dependency --strict --purs-args '-g corefn,js' && node ./backend-es/index.dev.js bundle-module -m Main --int-tags --platform=node --minify --to=./backend-es/bundle/index.js", + "prepublishOnly": "rm -rf backend-es/bundle output output-es && npm run build", + "format": "purs-tidy format-in-place lib/src backend-es/src test/src snapshot/src extern/src postinstall/src", + "format:check": "purs-tidy check lib/src backend-es/src test/src snapshot/src extern/src postinstall/src" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/aristanetworks/purescript-backend-optimizer.git" + }, + "keywords": [ + "PureScript", + "backend", + "optimizer" + ], + "author": "Arista Networks", + "license": "MIT", + "bugs": { + "url": "https://github.com/aristanetworks/purescript-backend-optimizer/issues" + }, + "homepage": "https://github.com/aristanetworks/purescript-backend-optimizer#readme", + "devDependencies": { + "esbuild": "^0.15.5", + "purescript": "^0.15.10", + "purs-tidy": "^0.10.0", + "spago": "^0.93.8" } } From fb83649d67c2627c7230b950f87410b7d52b5bb3 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Fri, 21 Jul 2023 11:41:21 +0300 Subject: [PATCH 12/34] Edits package.json --- backend-es/LICENSE | 21 --------------------- package.json | 9 +-------- 2 files changed, 1 insertion(+), 29 deletions(-) delete mode 100644 backend-es/LICENSE diff --git a/backend-es/LICENSE b/backend-es/LICENSE deleted file mode 100644 index a3779018..00000000 --- a/backend-es/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright © 2022 Arista Networks, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/package.json b/package.json index 92b1706d..bc7d86ec 100644 --- a/package.json +++ b/package.json @@ -2,16 +2,9 @@ "name": "purs-backend-es", "version": "1.3.2", "description": "A modern ECMAScript optimizing backend for PureScript", - "main": "index.js", "type": "module", - "files": [ - "LICENSE", - "index.js", - "runtime.js", - "bundle/index.js" - ], "bin": { - "purs-backend-es": "./index.js" + "purs-backend-es": "./backend-es/index.js" }, "scripts": { "preversion": "npm run test && npm run test:output-diff", From 1338b55b2406c9c36ed5694e13629f2fe5acad68 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Fri, 21 Jul 2023 12:56:21 +0300 Subject: [PATCH 13/34] Adds postinstall script --- backend-es/spago.yaml | 2 +- external/spago.yaml | 4 - .../PureScript/Backend/Optimizer/Convert.purs | 2 +- package-lock.json | 670 ++++++++++++++++-- package.json | 4 + postinstall/.gitignore | 2 + postinstall/spago.yaml | 11 + postinstall/src/Main.js | 16 + postinstall/src/Main.purs | 24 + processors/spago.yaml | 5 + {external => processors}/src/Processors.purs | 4 +- 11 files changed, 690 insertions(+), 54 deletions(-) delete mode 100644 external/spago.yaml create mode 100644 postinstall/.gitignore create mode 100644 postinstall/spago.yaml create mode 100644 postinstall/src/Main.js create mode 100644 postinstall/src/Main.purs create mode 100644 processors/spago.yaml rename {external => processors}/src/Processors.purs (55%) diff --git a/backend-es/spago.yaml b/backend-es/spago.yaml index fe1b159b..1258c569 100644 --- a/backend-es/spago.yaml +++ b/backend-es/spago.yaml @@ -9,7 +9,7 @@ package: dependencies: - "aff" - "lib-backend-optimizer" - - "external-backend-optimizer" + - "processors-backend-optimizer" - "snapshots-backend-optimizer" pursArgs: - "-g corefn" diff --git a/external/spago.yaml b/external/spago.yaml deleted file mode 100644 index 0b1343fb..00000000 --- a/external/spago.yaml +++ /dev/null @@ -1,4 +0,0 @@ -package: - name: "external-backend-optimizer" - dependencies: - - "free" diff --git a/lib/src/PureScript/Backend/Optimizer/Convert.purs b/lib/src/PureScript/Backend/Optimizer/Convert.purs index 2824220b..46df6433 100644 --- a/lib/src/PureScript/Backend/Optimizer/Convert.purs +++ b/lib/src/PureScript/Backend/Optimizer/Convert.purs @@ -70,7 +70,7 @@ import Data.Traversable (class Foldable, Accum, foldr, for, mapAccumL, mapAccumR import Data.TraversableWithIndex (forWithIndex) import Data.Tuple (Tuple(..), fst, snd) import Partial.Unsafe (unsafeCrashWith, unsafePartial) -import Processors (processors) +import PureScript.Backend.Optimizer.Processors (processors) import PureScript.Backend.Optimizer.Analysis (BackendAnalysis) import PureScript.Backend.Optimizer.CoreFn (Ann(..), Bind(..), Binder(..), Binding(..), CaseAlternative(..), CaseGuard(..), Comment, ConstructorType(..), Expr(..), Guard(..), Ident(..), Literal(..), Meta(..), Module(..), ModuleName(..), ProperName, Qualified(..), ReExport, findProp, propKey, propValue, qualifiedModuleName, unQualified) import PureScript.Backend.Optimizer.Directives (DirectiveHeaderResult, parseDirectiveHeader) diff --git a/package-lock.json b/package-lock.json index e69571af..89eabe63 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,9 +7,13 @@ "": { "name": "purs-backend-es", "version": "1.3.2", + "hasInstallScript": true, "license": "MIT", + "dependencies": { + "rimraf": "^5.0.1" + }, "bin": { - "purs-backend-es": "index.js" + "purs-backend-es": "backend-es/index.js" }, "devDependencies": { "esbuild": "^0.15.5", @@ -40,6 +44,95 @@ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", "dev": true }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -129,6 +222,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", @@ -196,7 +298,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -240,8 +341,7 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", @@ -327,6 +427,18 @@ "y18n": "^4.0.0" } }, + "node_modules/cacache/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -418,6 +530,18 @@ "run-queue": "^1.0.0" } }, + "node_modules/copy-concurrently/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", @@ -443,7 +567,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -457,7 +580,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -518,11 +640,15 @@ "stream-shift": "^1.0.0" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/encoding": { "version": "0.1.13", @@ -1005,6 +1131,32 @@ "readable-stream": "^2.3.6" } }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/from2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", @@ -1250,7 +1402,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } @@ -1312,8 +1463,24 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/jackspeak": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz", + "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } }, "node_modules/jsonfile": { "version": "6.1.0", @@ -1792,6 +1959,18 @@ "run-queue": "^1.0.3" } }, + "node_modules/move-concurrently/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -1898,11 +2077,41 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", + "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.2.tgz", + "integrity": "sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -2016,6 +2225,18 @@ "node": ">=12" } }, + "node_modules/purescript-installer/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, "node_modules/purs-tidy": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/purs-tidy/-/purs-tidy-0.10.0.tgz", @@ -2093,15 +2314,71 @@ } }, "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz", + "integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==", "dependencies": { - "glob": "^7.1.3" + "glob": "^10.2.5" }, "bin": { - "rimraf": "bin.js" + "rimraf": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", + "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minipass": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.2.tgz", + "integrity": "sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==", + "engines": { + "node": ">=16 || 14 >=14.17" } }, "node_modules/run-parallel": { @@ -2185,7 +2462,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -2197,7 +2473,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" } @@ -2421,7 +2696,20 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -2435,7 +2723,18 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -2649,6 +2948,53 @@ "node": ">=8" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -2748,6 +3094,64 @@ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", "dev": true }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + } + } + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2811,6 +3215,12 @@ } } }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true + }, "@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", @@ -2859,8 +3269,7 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "3.2.1", @@ -2895,8 +3304,7 @@ "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "bcrypt-pbkdf": { "version": "1.0.2", @@ -2971,6 +3379,17 @@ "ssri": "^6.0.1", "unique-filename": "^1.1.1", "y18n": "^4.0.0" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "chalk": { @@ -3050,6 +3469,17 @@ "mkdirp": "^0.5.1", "rimraf": "^2.5.4", "run-queue": "^1.0.0" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "core-util-is": { @@ -3073,7 +3503,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -3084,7 +3513,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "requires": { "isexe": "^2.0.0" } @@ -3132,11 +3560,15 @@ "stream-shift": "^1.0.0" } }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "encoding": { "version": "0.1.13", @@ -3414,6 +3846,22 @@ "readable-stream": "^2.3.6" } }, + "foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "dependencies": { + "signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==" + } + } + }, "from2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", @@ -3613,8 +4061,7 @@ "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "is-glob": { "version": "4.0.3", @@ -3658,8 +4105,16 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "jackspeak": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz", + "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==", + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } }, "jsonfile": { "version": "6.1.0", @@ -4038,6 +4493,17 @@ "mkdirp": "^0.5.1", "rimraf": "^2.5.4", "run-queue": "^1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "ms": { @@ -4121,8 +4587,28 @@ "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "requires": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", + "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==" + }, + "minipass": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.2.tgz", + "integrity": "sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==" + } + } }, "picomatch": { "version": "2.3.1", @@ -4218,6 +4704,17 @@ "tar": "^6.1.11", "which": "^1.3.1", "zen-observable": "^0.8.14" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "purs-tidy": { @@ -4270,12 +4767,46 @@ "dev": true }, "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz", + "integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==", "requires": { - "glob": "^7.1.3" + "glob": "^10.2.5" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", + "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + } + }, + "minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minipass": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.2.tgz", + "integrity": "sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==" + } } }, "run-parallel": { @@ -4338,7 +4869,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "requires": { "shebang-regex": "^3.0.0" } @@ -4346,8 +4876,7 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "signal-exit": { "version": "3.0.7", @@ -4525,7 +5054,16 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -4536,7 +5074,14 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { "ansi-regex": "^5.0.1" } @@ -4729,6 +5274,39 @@ } } }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + } + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index bc7d86ec..286654a5 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "purs-backend-es": "./backend-es/index.js" }, "scripts": { + "postinstall": "cd postinstall && spago run", "preversion": "npm run test && npm run test:output-diff", "version": "echo 'export const version = \"v'$npm_package_version'\";' > ./src/Version.js && git add .", "postversion": "git commit -m \"Bump purs-backend-es version ($npm_package_version)\" && git tag purs-backend-es-v$npm_package_version", @@ -37,5 +38,8 @@ "purescript": "^0.15.10", "purs-tidy": "^0.10.0", "spago": "^0.93.8" + }, + "dependencies": { + "rimraf": "^5.0.1" } } diff --git a/postinstall/.gitignore b/postinstall/.gitignore new file mode 100644 index 00000000..db442620 --- /dev/null +++ b/postinstall/.gitignore @@ -0,0 +1,2 @@ +output +.spago \ No newline at end of file diff --git a/postinstall/spago.yaml b/postinstall/spago.yaml new file mode 100644 index 00000000..2cc3762e --- /dev/null +++ b/postinstall/spago.yaml @@ -0,0 +1,11 @@ +package: + name: "postinstall-backend-optimizer" + dependencies: + - node-process + - node-path + - node-fs + - console + - effect +workspace: + package_set: + registry: 11.10.0 \ No newline at end of file diff --git a/postinstall/src/Main.js b/postinstall/src/Main.js new file mode 100644 index 00000000..bb9dc558 --- /dev/null +++ b/postinstall/src/Main.js @@ -0,0 +1,16 @@ +import * as fs from 'fs' +import rimraf from 'rimraf' + +export const rmRecursive = (path) => () => { + rimraf.sync(path); +} +export const copyFolderSync = (from) => (to) => () => { + fs.mkdirSync(to); + fs.readdirSync(from).forEach(element => { + if (fs.lstatSync(path.join(from, element)).isFile()) { + fs.copyFileSync(path.join(from, element), path.join(to, element)); + } else { + copyFolderSync(path.join(from, element), path.join(to, element)); + } + }); +} \ No newline at end of file diff --git a/postinstall/src/Main.purs b/postinstall/src/Main.purs new file mode 100644 index 00000000..fd631988 --- /dev/null +++ b/postinstall/src/Main.purs @@ -0,0 +1,24 @@ +module Main where + +import Prelude + +import Effect (Effect) + +foreign import copyFolderSync :: String -> String -> Effect Unit +foreign import rmRecursive :: String -> Effect Unit + +-- runBuild :: String -> Effect Unit +-- runBuild _ = pure unit + +main :: Effect Unit +main = do + pure unit + -- initCwd <- Object.lookup "INIT_CWD" <$> Process.getEnv + -- for_ initCwd \cwd -> do + -- let filePath = Path.concat [ cwd, "purs-backend-es-processors" ] + -- backendProcessorsExists <- FS.exists filePath + -- when backendProcessorsExists do + -- let externalPath = Path.concat [ cwd, "node_modules", "purs-backend-es", "external" ] + -- rmRecursive externalPath + -- copyFolderSync filePath externalPath + -- runBuild cwd diff --git a/processors/spago.yaml b/processors/spago.yaml new file mode 100644 index 00000000..47c101ec --- /dev/null +++ b/processors/spago.yaml @@ -0,0 +1,5 @@ +package: + name: "processors-backend-optimizer" + dependencies: + - free + - hyrule diff --git a/external/src/Processors.purs b/processors/src/Processors.purs similarity index 55% rename from external/src/Processors.purs rename to processors/src/Processors.purs index f0d19a67..27bcd166 100644 --- a/external/src/Processors.purs +++ b/processors/src/Processors.purs @@ -1,6 +1,6 @@ -module Processors where +module PureScript.Backend.Optimizer.Processors where import PureScript.Backend.Optimizer.Semantics (Processors) processors :: Processors -processors = [] \ No newline at end of file +processors = [] From e41351306aa6ebc405b8011af1bf150b09ab22dd Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Fri, 21 Jul 2023 13:01:15 +0300 Subject: [PATCH 14/34] Adds pass information --- lib/src/PureScript/Backend/Optimizer/Semantics.purs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/src/PureScript/Backend/Optimizer/Semantics.purs b/lib/src/PureScript/Backend/Optimizer/Semantics.purs index 45ac8e28..7d7466e8 100644 --- a/lib/src/PureScript/Backend/Optimizer/Semantics.purs +++ b/lib/src/PureScript/Backend/Optimizer/Semantics.purs @@ -1541,7 +1541,8 @@ newtype NeutralExpr = NeutralExpr (BackendSyntax NeutralExpr) derive instance Newtype NeutralExpr _ -type ProcessorInput = { qual :: Qualified Ident, n :: Int, env :: Env, expr :: BackendExpr } +data ProcessingStage = FirstPass | IntermediatePass | FinalPass +type ProcessorInput = { qual :: Qualified Ident, n :: Int, env :: Env, expr :: BackendExpr, stage :: ProcessingStage } type Processors = Array (ProcessorInput -> Cofree (Function ProcessorInput) BackendExpr) optimize :: Boolean -> Processors -> Ctx -> Env -> Qualified Ident -> Int -> BackendExpr -> Tuple (Array BackendExpr) BackendExpr @@ -1550,14 +1551,14 @@ optimize traceSteps originalProcessors ctx env qual@(Qualified mn (Ident id)) in where go :: List.List BackendExpr -> Processors -> Int -> BackendExpr -> Tuple (Array BackendExpr) BackendExpr go steps processors' n expr1' = do - let process ee nn pp = foldr (\i p -> let res = i p.val in p { val { expr = Cofree.head res }, processors = p.processors <> [ Cofree.tail res ] }) { val: { expr: ee, env, qual, n: nn }, processors: [] } pp - let { val: { expr: expr1 }, processors } = process expr1' n processors' + let process ee nn pp stage = foldr (\i p -> let res = i p.val in p { val { expr = Cofree.head res }, processors = p.processors <> [ Cofree.tail res ] }) { val: { expr: ee, env, qual, n: nn, stage }, processors: [] } pp + let { val: { expr: expr1 }, processors } = process expr1' n processors' $ if n == initN then FirstPass else IntermediatePass let Tuple rewrite expr2 = goStep n expr1 let newSteps = if traceSteps then List.Cons expr2 steps else steps if rewrite then go newSteps processors (n - 1) expr2 else - Tuple (Array.reverse (List.toUnfoldable steps)) (process expr2 (n - 1) processors).val.expr + Tuple (Array.reverse (List.toUnfoldable steps)) (process expr2 (n - 1) processors FinalPass).val.expr goStep :: Int -> BackendExpr -> Tuple Boolean BackendExpr goStep n expr1 From fbee7880292149c052a1a2d641f970f346618a0d Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Fri, 21 Jul 2023 13:10:21 +0300 Subject: [PATCH 15/34] Uses wildcard syntax for rimraf --- postinstall/src/Main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/postinstall/src/Main.js b/postinstall/src/Main.js index bb9dc558..ae6111a5 100644 --- a/postinstall/src/Main.js +++ b/postinstall/src/Main.js @@ -1,5 +1,5 @@ import * as fs from 'fs' -import rimraf from 'rimraf' +import * as rimraf from 'rimraf' export const rmRecursive = (path) => () => { rimraf.sync(path); From d787faea6806b723f1dd09b6d38cd3dcb032f515 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Fri, 21 Jul 2023 13:15:07 +0300 Subject: [PATCH 16/34] Removes unnecessary build step --- .github/workflows/ci.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6e8c5ffa..0548e969 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,9 +44,6 @@ jobs: .spago output - - name: Install dependencies - run: spago install - - name: Build project run: npm run build From 01dd701044fa5a389e4c1eb87f830a80a0b25d8a Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Fri, 21 Jul 2023 13:15:25 +0300 Subject: [PATCH 17/34] Fixes formatting --- .../PureScript/Backend/Optimizer/Convert.purs | 2 +- postinstall/src/Main.purs | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/src/PureScript/Backend/Optimizer/Convert.purs b/lib/src/PureScript/Backend/Optimizer/Convert.purs index 46df6433..da5837c8 100644 --- a/lib/src/PureScript/Backend/Optimizer/Convert.purs +++ b/lib/src/PureScript/Backend/Optimizer/Convert.purs @@ -70,10 +70,10 @@ import Data.Traversable (class Foldable, Accum, foldr, for, mapAccumL, mapAccumR import Data.TraversableWithIndex (forWithIndex) import Data.Tuple (Tuple(..), fst, snd) import Partial.Unsafe (unsafeCrashWith, unsafePartial) -import PureScript.Backend.Optimizer.Processors (processors) import PureScript.Backend.Optimizer.Analysis (BackendAnalysis) import PureScript.Backend.Optimizer.CoreFn (Ann(..), Bind(..), Binder(..), Binding(..), CaseAlternative(..), CaseGuard(..), Comment, ConstructorType(..), Expr(..), Guard(..), Ident(..), Literal(..), Meta(..), Module(..), ModuleName(..), ProperName, Qualified(..), ReExport, findProp, propKey, propValue, qualifiedModuleName, unQualified) import PureScript.Backend.Optimizer.Directives (DirectiveHeaderResult, parseDirectiveHeader) +import PureScript.Backend.Optimizer.Processors (processors) import PureScript.Backend.Optimizer.Semantics (BackendExpr(..), BackendSemantics, Ctx, DataTypeMeta, Env(..), EvalRef(..), ExternImpl(..), ExternSpine, InlineAccessor(..), InlineDirective(..), InlineDirectiveMap, NeutralExpr(..), build, evalExternFromImpl, freeze, optimize) import PureScript.Backend.Optimizer.Semantics.Foreign (ForeignEval) import PureScript.Backend.Optimizer.Syntax (BackendAccessor(..), BackendOperator(..), BackendOperator1(..), BackendOperator2(..), BackendOperatorOrd(..), BackendSyntax(..), Level(..), Pair(..)) diff --git a/postinstall/src/Main.purs b/postinstall/src/Main.purs index fd631988..d146f19b 100644 --- a/postinstall/src/Main.purs +++ b/postinstall/src/Main.purs @@ -13,12 +13,12 @@ foreign import rmRecursive :: String -> Effect Unit main :: Effect Unit main = do pure unit - -- initCwd <- Object.lookup "INIT_CWD" <$> Process.getEnv - -- for_ initCwd \cwd -> do - -- let filePath = Path.concat [ cwd, "purs-backend-es-processors" ] - -- backendProcessorsExists <- FS.exists filePath - -- when backendProcessorsExists do - -- let externalPath = Path.concat [ cwd, "node_modules", "purs-backend-es", "external" ] - -- rmRecursive externalPath - -- copyFolderSync filePath externalPath - -- runBuild cwd +-- initCwd <- Object.lookup "INIT_CWD" <$> Process.getEnv +-- for_ initCwd \cwd -> do +-- let filePath = Path.concat [ cwd, "purs-backend-es-processors" ] +-- backendProcessorsExists <- FS.exists filePath +-- when backendProcessorsExists do +-- let externalPath = Path.concat [ cwd, "node_modules", "purs-backend-es", "external" ] +-- rmRecursive externalPath +-- copyFolderSync filePath externalPath +-- runBuild cwd From 2481383d3f853ba4539f6c31f7250e612002f662 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Fri, 21 Jul 2023 13:36:41 +0300 Subject: [PATCH 18/34] s/extern/processor/g --- processors/spago.yaml | 3 +-- snapshots/spago.yaml | 6 +++--- test/spago.yaml | 8 ++++---- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/processors/spago.yaml b/processors/spago.yaml index 47c101ec..b2cc40d5 100644 --- a/processors/spago.yaml +++ b/processors/spago.yaml @@ -1,5 +1,4 @@ package: name: "processors-backend-optimizer" dependencies: - - free - - hyrule + - lib-backend-optimizer diff --git a/snapshots/spago.yaml b/snapshots/spago.yaml index a7bfc409..73154abb 100644 --- a/snapshots/spago.yaml +++ b/snapshots/spago.yaml @@ -3,7 +3,7 @@ package: dependencies: - aff - lib-backend-optimizer - - external-backend-optimizer + - processors-backend-optimizer - backend-optimizer workspace: package_set: @@ -11,8 +11,8 @@ workspace: extra_packages: lib-backend-optimizer: path: ../lib - external-backend-optimizer: - path: ../external + processors-backend-optimizer: + path: ../processors backend-optimizer: path: ../backend-es node-glob-basic: diff --git a/test/spago.yaml b/test/spago.yaml index fb306a9f..a50d2366 100644 --- a/test/spago.yaml +++ b/test/spago.yaml @@ -3,14 +3,14 @@ package: dependencies: - aff - lib-backend-optimizer - - external-backend-optimizer + - processors-backend-optimizer - backend-optimizer test: main: "Test.Main" dependencies: - aff - lib-backend-optimizer - - external-backend-optimizer + - processors-backend-optimizer - backend-optimizer workspace: package_set: @@ -18,8 +18,8 @@ workspace: extra_packages: lib-backend-optimizer: path: ../lib - external-backend-optimizer: - path: ../external + processors-backend-optimizer: + path: ../processors backend-optimizer: path: ../backend-es node-glob-basic: From 1faa51093e379b3ce43fe16daf7701b54309ab23 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Fri, 21 Jul 2023 13:53:59 +0300 Subject: [PATCH 19/34] Moves corefn compilation to spago.yaml files --- backend-es/spago.yaml | 2 -- package.json | 2 +- snapshots/spago.yaml | 2 ++ 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/backend-es/spago.yaml b/backend-es/spago.yaml index 1258c569..cc8883af 100644 --- a/backend-es/spago.yaml +++ b/backend-es/spago.yaml @@ -11,8 +11,6 @@ package: - "lib-backend-optimizer" - "processors-backend-optimizer" - "snapshots-backend-optimizer" - pursArgs: - - "-g corefn" extra_packages: "dodo-printer": dependencies: diff --git a/package.json b/package.json index 286654a5..bd92a09b 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "postversion": "git commit -m \"Bump purs-backend-es version ($npm_package_version)\" && git tag purs-backend-es-v$npm_package_version", "test": "cd test && spago test --censor-build-warnings dependency", "test:output-diff": "npm run build && ./backend-es/index.js build --int-tags --output-dir=output-es2 && diff -r output-es output-es2 && rm -r output-es2", - "build": "spago build --censor-build-warnings dependency --strict --purs-args '-g corefn,js' && node ./backend-es/index.dev.js bundle-module -m Main --int-tags --platform=node --minify --to=./backend-es/bundle/index.js", + "build": "spago build --censor-build-warnings dependency --strict && node ./backend-es/index.dev.js bundle-module -m Main --int-tags --platform=node --minify --to=./backend-es/bundle/index.js", "prepublishOnly": "rm -rf backend-es/bundle output output-es && npm run build", "format": "purs-tidy format-in-place lib/src backend-es/src test/src snapshot/src extern/src postinstall/src", "format:check": "purs-tidy check lib/src backend-es/src test/src snapshot/src extern/src postinstall/src" diff --git a/snapshots/spago.yaml b/snapshots/spago.yaml index 73154abb..b7be1186 100644 --- a/snapshots/spago.yaml +++ b/snapshots/spago.yaml @@ -5,6 +5,8 @@ package: - lib-backend-optimizer - processors-backend-optimizer - backend-optimizer + pursArgs: + - "-g corefn" workspace: package_set: registry: 11.10.0 From 00e4ec452abc84ddc17a8e8516155fc511ec57b1 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Fri, 21 Jul 2023 14:53:50 +0300 Subject: [PATCH 20/34] Gets rid of toplevel workspace --- backend-es/.gitignore | 5 +++-- backend-es/index.dev.js | 2 +- backend-es/spago.yaml | 31 ++++++++++++++++++++++++------- lib/.gitignore | 2 ++ lib/spago.yaml | 4 +++- package.json | 2 +- processors/spago.yaml | 4 ---- processors/src/Processors.purs | 6 ------ snapshots/spago.yaml | 5 +++-- spago.yaml | 27 --------------------------- test/spago.yaml | 5 +++-- 11 files changed, 40 insertions(+), 53 deletions(-) create mode 100644 lib/.gitignore delete mode 100644 processors/spago.yaml delete mode 100644 processors/src/Processors.purs delete mode 100644 spago.yaml diff --git a/backend-es/.gitignore b/backend-es/.gitignore index 0614e159..93437c14 100644 --- a/backend-es/.gitignore +++ b/backend-es/.gitignore @@ -1,3 +1,4 @@ -node_modules bundle -test/test-out +output +.spago +output-es \ No newline at end of file diff --git a/backend-es/index.dev.js b/backend-es/index.dev.js index 7be5bee3..d1459d1d 100755 --- a/backend-es/index.dev.js +++ b/backend-es/index.dev.js @@ -2,7 +2,7 @@ import { dirname } from 'path'; import { fileURLToPath } from 'url'; -import { main } from "../output/Main/index.js"; +import { main } from "./output/Main/index.js"; const __dirname = dirname(fileURLToPath(import.meta.url)); diff --git a/backend-es/spago.yaml b/backend-es/spago.yaml index cc8883af..e60c3e6f 100644 --- a/backend-es/spago.yaml +++ b/backend-es/spago.yaml @@ -4,14 +4,17 @@ package: - "convertable-options" - "heterogeneous" - "variant" - test: - main: "Test.Main" - dependencies: - - "aff" - - "lib-backend-optimizer" - - "processors-backend-optimizer" - - "snapshots-backend-optimizer" + - "lib-backend-optimizer" + - processors-backend-optimizer + - node-glob-basic +workspace: + package_set: + registry: 11.10.0 extra_packages: + lib-backend-optimizer: + path: ../lib + processors-backend-optimizer: + path: ../lib/processors "dodo-printer": dependencies: - "ansi" @@ -21,3 +24,17 @@ package: - "strings" repo: "https://github.com/natefaubion/purescript-dodo-printer.git" version: "v2.2.1" + "node-glob-basic": + dependencies: + - "aff" + - "console" + - "effect" + - "lists" + - "maybe" + - "node-fs-aff" + - "node-path" + - "node-process" + - "ordered-collections" + - "strings" + repo: "https://github.com/natefaubion/purescript-node-glob-basic.git" + version: "v1.2.2" diff --git a/lib/.gitignore b/lib/.gitignore new file mode 100644 index 00000000..db442620 --- /dev/null +++ b/lib/.gitignore @@ -0,0 +1,2 @@ +output +.spago \ No newline at end of file diff --git a/lib/spago.yaml b/lib/spago.yaml index d8749518..e84071c3 100644 --- a/lib/spago.yaml +++ b/lib/spago.yaml @@ -29,7 +29,6 @@ package: - "node-child-process" - "node-fs" - "node-fs-aff" - - "node-glob-basic" - "node-path" - "node-process" - "node-streams" @@ -44,3 +43,6 @@ package: - "transformers" - "tuples" - "unsafe-coerce" +workspace: + package_set: + registry: 11.10.0 \ No newline at end of file diff --git a/package.json b/package.json index bd92a09b..5713d261 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "postversion": "git commit -m \"Bump purs-backend-es version ($npm_package_version)\" && git tag purs-backend-es-v$npm_package_version", "test": "cd test && spago test --censor-build-warnings dependency", "test:output-diff": "npm run build && ./backend-es/index.js build --int-tags --output-dir=output-es2 && diff -r output-es output-es2 && rm -r output-es2", - "build": "spago build --censor-build-warnings dependency --strict && node ./backend-es/index.dev.js bundle-module -m Main --int-tags --platform=node --minify --to=./backend-es/bundle/index.js", + "build": "cd backend-es && spago build --purs-args \"-g corefn,js\" --censor-build-warnings dependency --strict && node ./index.dev.js build && node ./index.dev.js bundle-module -m Main --int-tags --platform=node --minify --to=./bundle/index.js", "prepublishOnly": "rm -rf backend-es/bundle output output-es && npm run build", "format": "purs-tidy format-in-place lib/src backend-es/src test/src snapshot/src extern/src postinstall/src", "format:check": "purs-tidy check lib/src backend-es/src test/src snapshot/src extern/src postinstall/src" diff --git a/processors/spago.yaml b/processors/spago.yaml deleted file mode 100644 index b2cc40d5..00000000 --- a/processors/spago.yaml +++ /dev/null @@ -1,4 +0,0 @@ -package: - name: "processors-backend-optimizer" - dependencies: - - lib-backend-optimizer diff --git a/processors/src/Processors.purs b/processors/src/Processors.purs deleted file mode 100644 index 27bcd166..00000000 --- a/processors/src/Processors.purs +++ /dev/null @@ -1,6 +0,0 @@ -module PureScript.Backend.Optimizer.Processors where - -import PureScript.Backend.Optimizer.Semantics (Processors) - -processors :: Processors -processors = [] diff --git a/snapshots/spago.yaml b/snapshots/spago.yaml index b7be1186..a6778ca0 100644 --- a/snapshots/spago.yaml +++ b/snapshots/spago.yaml @@ -2,9 +2,10 @@ package: name: snapshots-backend-optimizer dependencies: - aff + - node-glob-basic - lib-backend-optimizer - - processors-backend-optimizer - backend-optimizer + - processors-backend-optimizer pursArgs: - "-g corefn" workspace: @@ -14,7 +15,7 @@ workspace: lib-backend-optimizer: path: ../lib processors-backend-optimizer: - path: ../processors + path: ../lib/processors backend-optimizer: path: ../backend-es node-glob-basic: diff --git a/spago.yaml b/spago.yaml deleted file mode 100644 index e8866955..00000000 --- a/spago.yaml +++ /dev/null @@ -1,27 +0,0 @@ -workspace: - package_set: - registry: 11.10.0 - extra_packages: - "dodo-printer": - dependencies: - - "ansi" - - "foldable-traversable" - - "lists" - - "maybe" - - "strings" - repo: "https://github.com/natefaubion/purescript-dodo-printer.git" - version: "v2.2.1" - "node-glob-basic": - dependencies: - - "aff" - - "console" - - "effect" - - "lists" - - "maybe" - - "node-fs-aff" - - "node-path" - - "node-process" - - "ordered-collections" - - "strings" - repo: "https://github.com/natefaubion/purescript-node-glob-basic.git" - version: "v1.2.2" \ No newline at end of file diff --git a/test/spago.yaml b/test/spago.yaml index a50d2366..715a9c53 100644 --- a/test/spago.yaml +++ b/test/spago.yaml @@ -5,12 +5,13 @@ package: - lib-backend-optimizer - processors-backend-optimizer - backend-optimizer + - node-glob-basic test: main: "Test.Main" dependencies: - aff - - lib-backend-optimizer - processors-backend-optimizer + - lib-backend-optimizer - backend-optimizer workspace: package_set: @@ -19,7 +20,7 @@ workspace: lib-backend-optimizer: path: ../lib processors-backend-optimizer: - path: ../processors + path: ../lib/processors backend-optimizer: path: ../backend-es node-glob-basic: From 5365f998518fac952c97b86c2e2185624f3694fa Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Fri, 21 Jul 2023 14:54:12 +0300 Subject: [PATCH 21/34] Adds back processors --- lib/processors/spago.yaml | 4 ++++ lib/processors/src/Processors.purs | 6 ++++++ 2 files changed, 10 insertions(+) create mode 100644 lib/processors/spago.yaml create mode 100644 lib/processors/src/Processors.purs diff --git a/lib/processors/spago.yaml b/lib/processors/spago.yaml new file mode 100644 index 00000000..b2cc40d5 --- /dev/null +++ b/lib/processors/spago.yaml @@ -0,0 +1,4 @@ +package: + name: "processors-backend-optimizer" + dependencies: + - lib-backend-optimizer diff --git a/lib/processors/src/Processors.purs b/lib/processors/src/Processors.purs new file mode 100644 index 00000000..27bcd166 --- /dev/null +++ b/lib/processors/src/Processors.purs @@ -0,0 +1,6 @@ +module PureScript.Backend.Optimizer.Processors where + +import PureScript.Backend.Optimizer.Semantics (Processors) + +processors :: Processors +processors = [] From ef8e28620c8a6f3dec6480e6b62069c7c514f543 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Fri, 21 Jul 2023 15:04:38 +0300 Subject: [PATCH 22/34] Updates package lock --- package-lock.json | 2592 +-------------------------------------------- 1 file changed, 1 insertion(+), 2591 deletions(-) diff --git a/package-lock.json b/package-lock.json index 89eabe63..653c9ec3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "purs-backend-es", "version": "1.3.2", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -22,22 +22,6 @@ "spago": "^0.93.8" } }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.5.tgz", - "integrity": "sha512-UHkDFCfSGTuXq08oQltXxSZmH1TXyWsL+4QhZDWvvLl6mEJQqk3u7/wq1LjhrrAXYIllaTtRSzUXl4Olkf2J8A==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/@gar/promisify": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", @@ -720,54 +704,6 @@ "esbuild-windows-arm64": "0.15.5" } }, - "node_modules/esbuild-android-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.5.tgz", - "integrity": "sha512-dYPPkiGNskvZqmIK29OPxolyY3tp+c47+Fsc2WYSOVjEPWNCHNyqhtFqQadcXMJDQt8eN0NMDukbyQgFcHquXg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-android-arm64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.5.tgz", - "integrity": "sha512-YyEkaQl08ze3cBzI/4Cm1S+rVh8HMOpCdq8B78JLbNFHhzi4NixVN93xDrHZLztlocEYqi45rHHCgA8kZFidFg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.5.tgz", - "integrity": "sha512-Cr0iIqnWKx3ZTvDUAzG0H/u9dWjLE4c2gTtRLz4pqOBGjfjqdcZSfAObFzKTInLLSmD0ZV1I/mshhPoYSBMMCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/esbuild-darwin-arm64": { "version": "0.15.5", "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.5.tgz", @@ -784,262 +720,6 @@ "node": ">=12" } }, - "node_modules/esbuild-freebsd-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.5.tgz", - "integrity": "sha512-M5/EfzV2RsMd/wqwR18CELcenZ8+fFxQAAEO7TJKDmP3knhWSbD72ILzrXFMMwshlPAS1ShCZ90jsxkm+8FlaA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-arm64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.5.tgz", - "integrity": "sha512-2JQQ5Qs9J0440F/n/aUBNvY6lTo4XP/4lt1TwDfHuo0DY3w5++anw+jTjfouLzbJmFFiwmX7SmUhMnysocx96w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-32": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.5.tgz", - "integrity": "sha512-gO9vNnIN0FTUGjvTFucIXtBSr1Woymmx/aHQtuU+2OllGU6YFLs99960UD4Dib1kFovVgs59MTXwpFdVoSMZoQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.5.tgz", - "integrity": "sha512-ne0GFdNLsm4veXbTnYAWjbx3shpNKZJUd6XpNbKNUZaNllDZfYQt0/zRqOg0sc7O8GQ+PjSMv9IpIEULXVTVmg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.5.tgz", - "integrity": "sha512-wvAoHEN+gJ/22gnvhZnS/+2H14HyAxM07m59RSLn3iXrQsdS518jnEWRBnJz3fR6BJa+VUTo0NxYjGaNt7RA7Q==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.5.tgz", - "integrity": "sha512-7EgFyP2zjO065XTfdCxiXVEk+f83RQ1JsryN1X/VSX2li9rnHAt2swRbpoz5Vlrl6qjHrCmq5b6yxD13z6RheA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-mips64le": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.5.tgz", - "integrity": "sha512-KdnSkHxWrJ6Y40ABu+ipTZeRhFtc8dowGyFsZY5prsmMSr1ZTG9zQawguN4/tunJ0wy3+kD54GaGwdcpwWAvZQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-ppc64le": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.5.tgz", - "integrity": "sha512-QdRHGeZ2ykl5P0KRmfGBZIHmqcwIsUKWmmpZTOq573jRWwmpfRmS7xOhmDHBj9pxv+6qRMH8tLr2fe+ZKQvCYw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-riscv64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.5.tgz", - "integrity": "sha512-p+WE6RX+jNILsf+exR29DwgV6B73khEQV0qWUbzxaycxawZ8NE0wA6HnnTxbiw5f4Gx9sJDUBemh9v49lKOORA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-s390x": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.5.tgz", - "integrity": "sha512-J2ngOB4cNzmqLHh6TYMM/ips8aoZIuzxJnDdWutBw5482jGXiOzsPoEF4j2WJ2mGnm7FBCO4StGcwzOgic70JQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-netbsd-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.5.tgz", - "integrity": "sha512-MmKUYGDizYjFia0Rwt8oOgmiFH7zaYlsoQ3tIOfPxOqLssAsEgG0MUdRDm5lliqjiuoog8LyDu9srQk5YwWF3w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-openbsd-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.5.tgz", - "integrity": "sha512-2mMFfkLk3oPWfopA9Plj4hyhqHNuGyp5KQyTT9Rc8hFd8wAn5ZrbJg+gNcLMo2yzf8Uiu0RT6G9B15YN9WQyMA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-sunos-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.5.tgz", - "integrity": "sha512-2sIzhMUfLNoD+rdmV6AacilCHSxZIoGAU2oT7XmJ0lXcZWnCvCtObvO6D4puxX9YRE97GodciRGDLBaiC6x1SA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-32": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.5.tgz", - "integrity": "sha512-e+duNED9UBop7Vnlap6XKedA/53lIi12xv2ebeNS4gFmu7aKyTrok7DPIZyU5w/ftHD4MUDs5PJUkQPP9xJRzg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.5.tgz", - "integrity": "sha512-v+PjvNtSASHOjPDMIai9Yi+aP+Vwox+3WVdg2JB8N9aivJ7lyhp4NVU+J0MV2OkWFPnVO8AE/7xH+72ibUUEnw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-arm64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.5.tgz", - "integrity": "sha512-Yz8w/D8CUPYstvVQujByu6mlf48lKmXkq6bkeSZZxTA626efQOJb26aDGLzmFWx6eg/FwrXgt6SZs9V8Pwy/aA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -3079,2275 +2759,5 @@ "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==", "dev": true } - }, - "dependencies": { - "@esbuild/linux-loong64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.5.tgz", - "integrity": "sha512-UHkDFCfSGTuXq08oQltXxSZmH1TXyWsL+4QhZDWvvLl6mEJQqk3u7/wq1LjhrrAXYIllaTtRSzUXl4Olkf2J8A==", - "dev": true, - "optional": true - }, - "@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, - "@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "requires": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - } - } - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "dev": true, - "requires": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - } - }, - "@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "dev": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true - }, - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "agentkeepalive": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", - "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "depd": "^2.0.0", - "humanize-ms": "^1.2.1" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "buildcheck": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.6.tgz", - "integrity": "sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==", - "dev": true, - "optional": true - }, - "byline": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==", - "dev": true - }, - "cacache": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", - "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "cpu-features": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.8.tgz", - "integrity": "sha512-BbHBvtYhUhksqTjr6bhNOjGgMnhwhGTQmOoZGD+K7BCaQDCuZl/Ve1ZxUSMRwVC4D/rkCPQ2MAIeYzrWyK7eEg==", - "dev": true, - "optional": true, - "requires": { - "buildcheck": "~0.0.6", - "nan": "^2.17.0" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "cyclist": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz", - "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==", - "dev": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "optional": true, - "requires": { - "iconv-lite": "^0.6.2" - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true - }, - "err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, - "esbuild": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.5.tgz", - "integrity": "sha512-VSf6S1QVqvxfIsSKb3UKr3VhUCis7wgDbtF4Vd9z84UJr05/Sp2fRKmzC+CSPG/dNAPPJZ0BTBLTT1Fhd6N9Gg==", - "dev": true, - "requires": { - "@esbuild/linux-loong64": "0.15.5", - "esbuild-android-64": "0.15.5", - "esbuild-android-arm64": "0.15.5", - "esbuild-darwin-64": "0.15.5", - "esbuild-darwin-arm64": "0.15.5", - "esbuild-freebsd-64": "0.15.5", - "esbuild-freebsd-arm64": "0.15.5", - "esbuild-linux-32": "0.15.5", - "esbuild-linux-64": "0.15.5", - "esbuild-linux-arm": "0.15.5", - "esbuild-linux-arm64": "0.15.5", - "esbuild-linux-mips64le": "0.15.5", - "esbuild-linux-ppc64le": "0.15.5", - "esbuild-linux-riscv64": "0.15.5", - "esbuild-linux-s390x": "0.15.5", - "esbuild-netbsd-64": "0.15.5", - "esbuild-openbsd-64": "0.15.5", - "esbuild-sunos-64": "0.15.5", - "esbuild-windows-32": "0.15.5", - "esbuild-windows-64": "0.15.5", - "esbuild-windows-arm64": "0.15.5" - } - }, - "esbuild-android-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.5.tgz", - "integrity": "sha512-dYPPkiGNskvZqmIK29OPxolyY3tp+c47+Fsc2WYSOVjEPWNCHNyqhtFqQadcXMJDQt8eN0NMDukbyQgFcHquXg==", - "dev": true, - "optional": true - }, - "esbuild-android-arm64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.5.tgz", - "integrity": "sha512-YyEkaQl08ze3cBzI/4Cm1S+rVh8HMOpCdq8B78JLbNFHhzi4NixVN93xDrHZLztlocEYqi45rHHCgA8kZFidFg==", - "dev": true, - "optional": true - }, - "esbuild-darwin-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.5.tgz", - "integrity": "sha512-Cr0iIqnWKx3ZTvDUAzG0H/u9dWjLE4c2gTtRLz4pqOBGjfjqdcZSfAObFzKTInLLSmD0ZV1I/mshhPoYSBMMCQ==", - "dev": true, - "optional": true - }, - "esbuild-darwin-arm64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.5.tgz", - "integrity": "sha512-WIfQkocGtFrz7vCu44ypY5YmiFXpsxvz2xqwe688jFfSVCnUsCn2qkEVDo7gT8EpsLOz1J/OmqjExePL1dr1Kg==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.5.tgz", - "integrity": "sha512-M5/EfzV2RsMd/wqwR18CELcenZ8+fFxQAAEO7TJKDmP3knhWSbD72ILzrXFMMwshlPAS1ShCZ90jsxkm+8FlaA==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-arm64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.5.tgz", - "integrity": "sha512-2JQQ5Qs9J0440F/n/aUBNvY6lTo4XP/4lt1TwDfHuo0DY3w5++anw+jTjfouLzbJmFFiwmX7SmUhMnysocx96w==", - "dev": true, - "optional": true - }, - "esbuild-linux-32": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.5.tgz", - "integrity": "sha512-gO9vNnIN0FTUGjvTFucIXtBSr1Woymmx/aHQtuU+2OllGU6YFLs99960UD4Dib1kFovVgs59MTXwpFdVoSMZoQ==", - "dev": true, - "optional": true - }, - "esbuild-linux-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.5.tgz", - "integrity": "sha512-ne0GFdNLsm4veXbTnYAWjbx3shpNKZJUd6XpNbKNUZaNllDZfYQt0/zRqOg0sc7O8GQ+PjSMv9IpIEULXVTVmg==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.5.tgz", - "integrity": "sha512-wvAoHEN+gJ/22gnvhZnS/+2H14HyAxM07m59RSLn3iXrQsdS518jnEWRBnJz3fR6BJa+VUTo0NxYjGaNt7RA7Q==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.5.tgz", - "integrity": "sha512-7EgFyP2zjO065XTfdCxiXVEk+f83RQ1JsryN1X/VSX2li9rnHAt2swRbpoz5Vlrl6qjHrCmq5b6yxD13z6RheA==", - "dev": true, - "optional": true - }, - "esbuild-linux-mips64le": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.5.tgz", - "integrity": "sha512-KdnSkHxWrJ6Y40ABu+ipTZeRhFtc8dowGyFsZY5prsmMSr1ZTG9zQawguN4/tunJ0wy3+kD54GaGwdcpwWAvZQ==", - "dev": true, - "optional": true - }, - "esbuild-linux-ppc64le": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.5.tgz", - "integrity": "sha512-QdRHGeZ2ykl5P0KRmfGBZIHmqcwIsUKWmmpZTOq573jRWwmpfRmS7xOhmDHBj9pxv+6qRMH8tLr2fe+ZKQvCYw==", - "dev": true, - "optional": true - }, - "esbuild-linux-riscv64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.5.tgz", - "integrity": "sha512-p+WE6RX+jNILsf+exR29DwgV6B73khEQV0qWUbzxaycxawZ8NE0wA6HnnTxbiw5f4Gx9sJDUBemh9v49lKOORA==", - "dev": true, - "optional": true - }, - "esbuild-linux-s390x": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.5.tgz", - "integrity": "sha512-J2ngOB4cNzmqLHh6TYMM/ips8aoZIuzxJnDdWutBw5482jGXiOzsPoEF4j2WJ2mGnm7FBCO4StGcwzOgic70JQ==", - "dev": true, - "optional": true - }, - "esbuild-netbsd-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.5.tgz", - "integrity": "sha512-MmKUYGDizYjFia0Rwt8oOgmiFH7zaYlsoQ3tIOfPxOqLssAsEgG0MUdRDm5lliqjiuoog8LyDu9srQk5YwWF3w==", - "dev": true, - "optional": true - }, - "esbuild-openbsd-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.5.tgz", - "integrity": "sha512-2mMFfkLk3oPWfopA9Plj4hyhqHNuGyp5KQyTT9Rc8hFd8wAn5ZrbJg+gNcLMo2yzf8Uiu0RT6G9B15YN9WQyMA==", - "dev": true, - "optional": true - }, - "esbuild-sunos-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.5.tgz", - "integrity": "sha512-2sIzhMUfLNoD+rdmV6AacilCHSxZIoGAU2oT7XmJ0lXcZWnCvCtObvO6D4puxX9YRE97GodciRGDLBaiC6x1SA==", - "dev": true, - "optional": true - }, - "esbuild-windows-32": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.5.tgz", - "integrity": "sha512-e+duNED9UBop7Vnlap6XKedA/53lIi12xv2ebeNS4gFmu7aKyTrok7DPIZyU5w/ftHD4MUDs5PJUkQPP9xJRzg==", - "dev": true, - "optional": true - }, - "esbuild-windows-64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.5.tgz", - "integrity": "sha512-v+PjvNtSASHOjPDMIai9Yi+aP+Vwox+3WVdg2JB8N9aivJ7lyhp4NVU+J0MV2OkWFPnVO8AE/7xH+72ibUUEnw==", - "dev": true, - "optional": true - }, - "esbuild-windows-arm64": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.5.tgz", - "integrity": "sha512-Yz8w/D8CUPYstvVQujByu6mlf48lKmXkq6bkeSZZxTA626efQOJb26aDGLzmFWx6eg/FwrXgt6SZs9V8Pwy/aA==", - "dev": true, - "optional": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "execa": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz", - "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^3.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "fast-glob": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", - "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true - }, - "filesize": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-4.2.1.tgz", - "integrity": "sha512-bP82Hi8VRZX/TUBKfE24iiUGsB/sfm2WUrwTQyAzQrhO3V9IhcBBNBXMyzLY5orACxRyYJ3d2HeRVX+eFv4lmA==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "dependencies": { - "signal-exit": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", - "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==" - } - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fuse.js": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-6.6.2.tgz", - "integrity": "sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==", - "dev": true - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dev": true, - "requires": { - "ms": "^2.0.0" - } - }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "jackspeak": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz", - "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==", - "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2" - } - }, - "log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "requires": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dev": true, - "requires": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true - }, - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dev": true, - "requires": { - "unique-slug": "^3.0.0" - } - }, - "unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - } - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", - "dev": true, - "optional": true - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true - }, - "npm-run-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", - "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", - "dev": true - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", - "requires": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", - "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==" - }, - "minipass": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.2.tgz", - "integrity": "sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==" - } - } - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true - }, - "promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "requires": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "purescript": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/purescript/-/purescript-0.15.10.tgz", - "integrity": "sha512-USvNla7eWMsIcbcQJ6jNiHduiXzKT+d3Cc9hjTffZ/9fHHZaMUf+k4TXbh+/OtecDEfPu736Ky51VX4bRj4iiA==", - "dev": true, - "requires": { - "purescript-installer": "^0.3.5" - } - }, - "purescript-installer": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/purescript-installer/-/purescript-installer-0.3.5.tgz", - "integrity": "sha512-w04BBvW4BSQlspLsZ9Bs5vtUBZqvC4bC+FizC5GUp2/rpmYvXJ0CTf79Q3MKo2A8p1ZjqbhCI+SqdTQ30UZUIQ==", - "dev": true, - "requires": { - "byline": "^5.0.0", - "cacache": "^11.3.2", - "chalk": "^2.4.2", - "env-paths": "^2.2.0", - "execa": "^2.0.3", - "filesize": "^4.1.2", - "is-plain-obj": "^2.0.0", - "log-symbols": "^3.0.0", - "log-update": "^4.0.0", - "make-fetch-happen": "^10.0.0", - "minimist": "^1.2.0", - "ms": "^2.1.2", - "once": "^1.4.0", - "rimraf": "^2.6.3", - "semver": "^7.3.7", - "tar": "^6.1.11", - "which": "^1.3.1", - "zen-observable": "^0.8.14" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "purs-tidy": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/purs-tidy/-/purs-tidy-0.10.0.tgz", - "integrity": "sha512-ULbJfBHRngczYwcOzugytRiNy+Guy2VXoAG1jMtGaSFEaUZk1lZkKU11t8jIZTrDdOrkgqlWCZLi3mfcHvdimA==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz", - "integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==", - "requires": { - "glob": "^10.2.5" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "10.3.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", - "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - } - }, - "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "minipass": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.2.tgz", - "integrity": "sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==" - } - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", - "dev": true, - "requires": { - "aproba": "^1.1.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true - }, - "socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", - "dev": true, - "requires": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - } - }, - "socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - } - }, - "spago": { - "version": "0.93.8", - "resolved": "https://registry.npmjs.org/spago/-/spago-0.93.8.tgz", - "integrity": "sha512-Y909h1xy/fn+DqTBO+O1SUm0sAIMBH7GVOkj9anGLRx4RiKjM0TWVs+/JzlF4ZPE8NqHd1DHGz8cG3oddou/+g==", - "dev": true, - "requires": { - "env-paths": "^3.0.0", - "fast-glob": "^3.2.11", - "fs-extra": "^10.0.0", - "fuse.js": "^6.5.3", - "semver": "^7.3.5", - "spdx-expression-parse": "^3.0.1", - "ssh2": "^1.14.0", - "supports-color": "^9.2.3", - "tar": "^6.1.11", - "tmp": "^0.2.1", - "xhr2": "^0.2.1", - "yaml": "^2.1.1" - }, - "dependencies": { - "env-paths": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", - "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", - "dev": true - }, - "supports-color": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", - "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", - "dev": true - } - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", - "dev": true - }, - "ssh2": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.14.0.tgz", - "integrity": "sha512-AqzD1UCqit8tbOKoj6ztDDi1ffJZ2rV2SwlgrVVrHPkV5vWqGJOVp5pmtj18PunkPJAuKQsnInyKV+/Nb2bUnA==", - "dev": true, - "requires": { - "asn1": "^0.2.6", - "bcrypt-pbkdf": "^1.0.2", - "cpu-features": "~0.0.8", - "nan": "^2.17.0" - } - }, - "ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string-width-cjs": { - "version": "npm:string-width@4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-ansi-cjs": { - "version": "npm:strip-ansi@6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "tar": { - "version": "6.1.15", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", - "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", - "dev": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true - }, - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - }, - "dependencies": { - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "wrap-ansi-cjs": { - "version": "npm:wrap-ansi@7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "xhr2": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.2.1.tgz", - "integrity": "sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw==", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "yaml": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", - "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", - "dev": true - }, - "zen-observable": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==", - "dev": true - } } } From 8adf1514b02e34b3d603d6bee7c1cde90b006751 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Sat, 22 Jul 2023 07:51:42 +0300 Subject: [PATCH 23/34] Moves processors to separate project --- backend-es/spago.yaml | 2 +- backend-es/src/Main.purs | 2 ++ .../Backend/Optimizer/Codegen/EcmaScript/Builder.purs | 4 +++- lib/processors/spago.yaml | 4 ---- lib/spago.yaml | 2 +- lib/src/PureScript/Backend/Optimizer/Builder.purs | 4 +++- lib/src/PureScript/Backend/Optimizer/Convert.purs | 6 +++--- processors/.gitignore | 4 ++++ processors/spago.yaml | 10 ++++++++++ .../src/PureScript/Backend/Optimizer}/Processors.purs | 0 snapshots/spago.yaml | 2 +- test/spago.yaml | 2 +- test/src/Main.purs | 2 ++ 13 files changed, 31 insertions(+), 13 deletions(-) delete mode 100644 lib/processors/spago.yaml create mode 100644 processors/.gitignore create mode 100644 processors/spago.yaml rename {lib/processors/src => processors/src/PureScript/Backend/Optimizer}/Processors.purs (100%) diff --git a/backend-es/spago.yaml b/backend-es/spago.yaml index e60c3e6f..ef208e60 100644 --- a/backend-es/spago.yaml +++ b/backend-es/spago.yaml @@ -14,7 +14,7 @@ workspace: lib-backend-optimizer: path: ../lib processors-backend-optimizer: - path: ../lib/processors + path: ../processors "dodo-printer": dependencies: - "ansi" diff --git a/backend-es/src/Main.purs b/backend-es/src/Main.purs index ba83daf4..fa312a60 100644 --- a/backend-es/src/Main.purs +++ b/backend-es/src/Main.purs @@ -44,6 +44,7 @@ import PureScript.Backend.Optimizer.Codegen.EcmaScript.Foreign (esForeignSemanti import PureScript.Backend.Optimizer.CoreFn (Ident(..), Module(..), ModuleName(..), Qualified(..)) import PureScript.Backend.Optimizer.Semantics.Foreign (coreForeignSemantics) import PureScript.Backend.Optimizer.Tracer.Printer (printModuleSteps) +import PureScript.Backend.Optimizer.Processors (processors) import PureScript.CST.Lexer (lexToken) import PureScript.CST.Lexer as Lexer import PureScript.CST.Types (Token(..)) @@ -213,6 +214,7 @@ main cliRoot = buildCmd :: BuildArgs -> Aff Unit buildCmd args = liftEffect (Ref.new []) >>= \stepsRef -> basicBuildMain { resolveCoreFnDirectory: pure args.coreFnDir + , processors , resolveExternalDirectives: map (fromMaybe Map.empty) $ traverse externalDirectivesFromFile args.directivesFile , foreignSemantics: Map.union coreForeignSemantics esForeignSemantics , onCodegenBefore: do diff --git a/backend-es/src/PureScript/Backend/Optimizer/Codegen/EcmaScript/Builder.purs b/backend-es/src/PureScript/Backend/Optimizer/Codegen/EcmaScript/Builder.purs index bf603bac..9196dd06 100644 --- a/backend-es/src/PureScript/Backend/Optimizer/Codegen/EcmaScript/Builder.purs +++ b/backend-es/src/PureScript/Backend/Optimizer/Codegen/EcmaScript/Builder.purs @@ -35,7 +35,7 @@ import PureScript.Backend.Optimizer.CoreFn.Json (decodeModule) import PureScript.Backend.Optimizer.CoreFn.Sort (emptyPull, pullResult, resumePull, sortModules) import PureScript.Backend.Optimizer.Directives (parseDirectiveFile) import PureScript.Backend.Optimizer.Directives.Defaults as Defaults -import PureScript.Backend.Optimizer.Semantics (InlineDirectiveMap) +import PureScript.Backend.Optimizer.Semantics (Processors, InlineDirectiveMap) import PureScript.Backend.Optimizer.Semantics.Foreign (ForeignEval) import PureScript.CST.Errors (printParseError) @@ -89,6 +89,7 @@ basicBuildMain , onCodegenModule :: BuildEnv -> Module Ann -> BackendModule -> OptimizationSteps -> Aff Unit , onPrepareModule :: BuildEnv -> Module Ann -> Aff (Module Ann) , traceIdents :: Set (Qualified Ident) + , processors :: Processors } -> Aff Unit basicBuildMain options = do @@ -111,5 +112,6 @@ basicBuildMain options = do , onCodegenModule: options.onCodegenModule , onPrepareModule: options.onPrepareModule , traceIdents: options.traceIdents + , processors: options.processors } options.onCodegenAfter diff --git a/lib/processors/spago.yaml b/lib/processors/spago.yaml deleted file mode 100644 index b2cc40d5..00000000 --- a/lib/processors/spago.yaml +++ /dev/null @@ -1,4 +0,0 @@ -package: - name: "processors-backend-optimizer" - dependencies: - - lib-backend-optimizer diff --git a/lib/spago.yaml b/lib/spago.yaml index e84071c3..8c6ba76f 100644 --- a/lib/spago.yaml +++ b/lib/spago.yaml @@ -45,4 +45,4 @@ package: - "unsafe-coerce" workspace: package_set: - registry: 11.10.0 \ No newline at end of file + registry: 11.10.0 diff --git a/lib/src/PureScript/Backend/Optimizer/Builder.purs b/lib/src/PureScript/Backend/Optimizer/Builder.purs index 41415ee3..c4fc3639 100644 --- a/lib/src/PureScript/Backend/Optimizer/Builder.purs +++ b/lib/src/PureScript/Backend/Optimizer/Builder.purs @@ -16,7 +16,7 @@ import Data.Tuple (Tuple(..)) import PureScript.Backend.Optimizer.Analysis (BackendAnalysis) import PureScript.Backend.Optimizer.Convert (BackendModule, OptimizationSteps, toBackendModule) import PureScript.Backend.Optimizer.CoreFn (Ann, Ident, Module(..), Qualified) -import PureScript.Backend.Optimizer.Semantics (ExternImpl, InlineDirectiveMap) +import PureScript.Backend.Optimizer.Semantics (Processors, ExternImpl, InlineDirectiveMap) import PureScript.Backend.Optimizer.Semantics.Foreign (ForeignEval) type BuildEnv = @@ -27,6 +27,7 @@ type BuildEnv = type BuildOptions m = { directives :: InlineDirectiveMap + , processors :: Processors , foreignSemantics :: Map (Qualified Ident) ForeignEval , onPrepareModule :: BuildEnv -> Module Ann -> m (Module Ann) , onCodegenModule :: BuildEnv -> Module Ann -> BackendModule -> OptimizationSteps -> m Unit @@ -51,6 +52,7 @@ buildModules options coreFnModules = , implementations , moduleImplementations: Map.empty , directives + , processors: options.processors , dataTypes: Map.empty , foreignSemantics: options.foreignSemantics , rewriteLimit: 10_000 diff --git a/lib/src/PureScript/Backend/Optimizer/Convert.purs b/lib/src/PureScript/Backend/Optimizer/Convert.purs index da5837c8..4892058a 100644 --- a/lib/src/PureScript/Backend/Optimizer/Convert.purs +++ b/lib/src/PureScript/Backend/Optimizer/Convert.purs @@ -73,8 +73,7 @@ import Partial.Unsafe (unsafeCrashWith, unsafePartial) import PureScript.Backend.Optimizer.Analysis (BackendAnalysis) import PureScript.Backend.Optimizer.CoreFn (Ann(..), Bind(..), Binder(..), Binding(..), CaseAlternative(..), CaseGuard(..), Comment, ConstructorType(..), Expr(..), Guard(..), Ident(..), Literal(..), Meta(..), Module(..), ModuleName(..), ProperName, Qualified(..), ReExport, findProp, propKey, propValue, qualifiedModuleName, unQualified) import PureScript.Backend.Optimizer.Directives (DirectiveHeaderResult, parseDirectiveHeader) -import PureScript.Backend.Optimizer.Processors (processors) -import PureScript.Backend.Optimizer.Semantics (BackendExpr(..), BackendSemantics, Ctx, DataTypeMeta, Env(..), EvalRef(..), ExternImpl(..), ExternSpine, InlineAccessor(..), InlineDirective(..), InlineDirectiveMap, NeutralExpr(..), build, evalExternFromImpl, freeze, optimize) +import PureScript.Backend.Optimizer.Semantics (BackendExpr(..), Processors, BackendSemantics, Ctx, DataTypeMeta, Env(..), EvalRef(..), ExternImpl(..), ExternSpine, InlineAccessor(..), InlineDirective(..), InlineDirectiveMap, NeutralExpr(..), build, evalExternFromImpl, freeze, optimize) import PureScript.Backend.Optimizer.Semantics.Foreign (ForeignEval) import PureScript.Backend.Optimizer.Syntax (BackendAccessor(..), BackendOperator(..), BackendOperator1(..), BackendOperator2(..), BackendOperatorOrd(..), BackendSyntax(..), Level(..), Pair(..)) import PureScript.Backend.Optimizer.Utils (foldl1Array) @@ -111,6 +110,7 @@ type ConvertEnv = , directives :: InlineDirectiveMap , foreignSemantics :: Map (Qualified Ident) ForeignEval , rewriteLimit :: Int + , processors :: Processors , traceIdents :: Set (Qualified Ident) } @@ -248,7 +248,7 @@ toTopLevelBackendBinding group env (Binding _ ident cfn) = do let qualifiedIdent = Qualified (Just env.currentModule) ident let backendExpr = toBackendExpr cfn env let enableTracing = Set.member qualifiedIdent env.traceIdents - let Tuple mbSteps optimizedExpr = optimize enableTracing processors (getCtx env) evalEnv qualifiedIdent env.rewriteLimit backendExpr + let Tuple mbSteps optimizedExpr = optimize enableTracing env.processors (getCtx env) evalEnv qualifiedIdent env.rewriteLimit backendExpr let Tuple impl expr' = toExternImpl env group optimizedExpr { accum: env { implementations = Map.insert qualifiedIdent impl env.implementations diff --git a/processors/.gitignore b/processors/.gitignore new file mode 100644 index 00000000..93437c14 --- /dev/null +++ b/processors/.gitignore @@ -0,0 +1,4 @@ +bundle +output +.spago +output-es \ No newline at end of file diff --git a/processors/spago.yaml b/processors/spago.yaml new file mode 100644 index 00000000..77fba87a --- /dev/null +++ b/processors/spago.yaml @@ -0,0 +1,10 @@ +package: + name: "processors-backend-optimizer" + dependencies: + - lib-backend-optimizer +workspace: + package_set: + registry: 11.10.0 + extra_packages: + lib-backend-optimizer: + path: ../lib diff --git a/lib/processors/src/Processors.purs b/processors/src/PureScript/Backend/Optimizer/Processors.purs similarity index 100% rename from lib/processors/src/Processors.purs rename to processors/src/PureScript/Backend/Optimizer/Processors.purs diff --git a/snapshots/spago.yaml b/snapshots/spago.yaml index a6778ca0..d02b7359 100644 --- a/snapshots/spago.yaml +++ b/snapshots/spago.yaml @@ -15,7 +15,7 @@ workspace: lib-backend-optimizer: path: ../lib processors-backend-optimizer: - path: ../lib/processors + path: ../processors backend-optimizer: path: ../backend-es node-glob-basic: diff --git a/test/spago.yaml b/test/spago.yaml index 715a9c53..a9533a5d 100644 --- a/test/spago.yaml +++ b/test/spago.yaml @@ -20,7 +20,7 @@ workspace: lib-backend-optimizer: path: ../lib processors-backend-optimizer: - path: ../lib/processors + path: ../processors backend-optimizer: path: ../backend-es node-glob-basic: diff --git a/test/src/Main.purs b/test/src/Main.purs index 584c4c4b..e17325a3 100644 --- a/test/src/Main.purs +++ b/test/src/Main.purs @@ -36,6 +36,7 @@ import Node.Glob.Basic (expandGlobsCwd) import Node.Path as Path import Node.Process as Process import PureScript.Backend.Optimizer.Builder (buildModules) +import PureScript.Backend.Optimizer.Processors (processors) import PureScript.Backend.Optimizer.Codegen.EcmaScript (codegenModule) import PureScript.Backend.Optimizer.Codegen.EcmaScript.Builder (coreFnModulesFromOutput) import PureScript.Backend.Optimizer.Codegen.EcmaScript.Foreign (esForeignSemantics) @@ -122,6 +123,7 @@ runSnapshotTests { accept, filter, traceIdents } = do stepsRef <- liftEffect $ Ref.new [] coreFnModules # buildModules { directives + , processors , foreignSemantics: Map.union coreForeignSemantics esForeignSemantics , onCodegenModule: \build (Module { name: ModuleName name, path }) backendMod optimizationSteps -> do let From 219b773dc6f6c9e32a4ec89575bc615c9357cd15 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Sat, 22 Jul 2023 08:38:58 +0300 Subject: [PATCH 24/34] Uses old spago --- .github/workflows/ci.yml | 2 +- backend-es/packages.dhall | 29 + backend-es/spago.dhall | 49 ++ lib/packages.dhall | 29 + lib/spago.dhall | 53 ++ package-lock.json | 614 ++++++------------ package.json | 8 +- processors/packages.dhall | 28 + processors/spago.dhall | 12 + snapshots/packages.dhall | 29 + .../snapshots-out/Snapshot.CaseLeafTco.js | 67 +- .../Snapshot.InlineArrayIndex.js | 6 +- snapshots/snapshots-out/Snapshot.Tco05.js | 15 +- snapshots/spago.dhall | 37 ++ test/packages.dhall | 30 + test/spago.dhall | 40 ++ 16 files changed, 566 insertions(+), 482 deletions(-) create mode 100644 backend-es/packages.dhall create mode 100644 backend-es/spago.dhall create mode 100644 lib/packages.dhall create mode 100644 lib/spago.dhall create mode 100644 processors/packages.dhall create mode 100644 processors/spago.dhall create mode 100644 snapshots/packages.dhall create mode 100644 snapshots/spago.dhall create mode 100644 test/packages.dhall create mode 100644 test/spago.dhall diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0548e969..ce2bd7a6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,7 +39,7 @@ jobs: - name: Cache PureScript dependencies uses: actions/cache@v2 with: - key: ${{ runner.os }}-spago-${{ hashFiles('**/*.yaml') }} + key: ${{ runner.os }}-spago-${{ hashFiles('**/*.dhall') }} path: | .spago output diff --git a/backend-es/packages.dhall b/backend-es/packages.dhall new file mode 100644 index 00000000..9e1eecb7 --- /dev/null +++ b/backend-es/packages.dhall @@ -0,0 +1,29 @@ +let upstream = + https://github.com/purescript/package-sets/releases/download/psc-0.15.10-20230721/packages.dhall + sha256:8800ac7d0763826544ca3ed3ba61f9dcef761a9e2a1feee0346437d9b861e78f + +in upstream + with lib-backend-optimizer = ../lib/spago.dhall as Location + with processors-backend-optimizer = ../processors/spago.dhall as Location + with dodo-printer = + { dependencies = + [ "ansi", "foldable-traversable", "lists", "maybe", "strings" ] + , repo = "https://github.com/natefaubion/purescript-dodo-printer.git" + , version = "v2.2.1" + } + with node-glob-basic = + { dependencies = + [ "aff" + , "console" + , "effect" + , "lists" + , "maybe" + , "node-fs-aff" + , "node-path" + , "node-process" + , "ordered-collections" + , "strings" + ] + , repo = "https://github.com/natefaubion/purescript-node-glob-basic.git" + , version = "v1.2.2" + } diff --git a/backend-es/spago.dhall b/backend-es/spago.dhall new file mode 100644 index 00000000..da2013ef --- /dev/null +++ b/backend-es/spago.dhall @@ -0,0 +1,49 @@ +{- +Welcome to a Spago project! +You can edit this file as you like. +-} +{ name = "backend-optimizer" +, dependencies = + [ "aff" + , "argonaut" + , "argparse-basic" + , "arrays" + , "bifunctors" + , "lib-backend-optimizer" + , "processors-backend-optimizer" + , "console" + , "control" + , "dodo-printer" + , "effect" + , "either" + , "enums" + , "filterable" + , "foldable-traversable" + , "language-cst-parser" + , "lazy" + , "lists" + , "maybe" + , "newtype" + , "node-buffer" + , "node-child-process" + , "node-fs" + , "node-fs-aff" + , "node-glob-basic" + , "node-path" + , "node-process" + , "node-streams" + , "ordered-collections" + , "parallel" + , "partial" + , "posix-types" + , "prelude" + , "refs" + , "strings" + , "transformers" + , "tuples" + , "unsafe-coerce" + ] +, packages = ./packages.dhall +, sources = + [ "src/**/*.purs" ] +} diff --git a/lib/packages.dhall b/lib/packages.dhall new file mode 100644 index 00000000..cc2acf1d --- /dev/null +++ b/lib/packages.dhall @@ -0,0 +1,29 @@ +let upstream = + https://github.com/purescript/package-sets/releases/download/psc-0.15.10-20230721/packages.dhall + sha256:8800ac7d0763826544ca3ed3ba61f9dcef761a9e2a1feee0346437d9b861e78f + +in upstream + with lib-backend-optimizer = ../lib-backend-optimizer/spago.dhall as Location + with processors-backend-optimizer = ../processors-backend-optimizer/spago.dhall as Location + with dodo-printer = + { dependencies = + [ "ansi", "foldable-traversable", "lists", "maybe", "strings" ] + , repo = "https://github.com/natefaubion/purescript-dodo-printer.git" + , version = "v2.2.1" + } + with node-glob-basic = + { dependencies = + [ "aff" + , "console" + , "effect" + , "lists" + , "maybe" + , "node-fs-aff" + , "node-path" + , "node-process" + , "ordered-collections" + , "strings" + ] + , repo = "https://github.com/natefaubion/purescript-node-glob-basic.git" + , version = "v1.2.2" + } diff --git a/lib/spago.dhall b/lib/spago.dhall new file mode 100644 index 00000000..b35dc67c --- /dev/null +++ b/lib/spago.dhall @@ -0,0 +1,53 @@ +{- +Welcome to a Spago project! +You can edit this file as you like. +-} +{ name = "lib-backend-optimizer" +, dependencies = + [ "aff" + , "ansi" + , "argonaut" + , "argonaut-codecs" + , "argparse-basic" + , "arrays" + , "bifunctors" + , "console" + , "control" + , "debug" + , "dodo-printer" + , "effect" + , "either" + , "enums" + , "filterable" + , "foldable-traversable" + , "foreign-object" + , "integers" + , "language-cst-parser" + , "lazy" + , "lists" + , "maybe" + , "newtype" + , "node-buffer" + , "node-child-process" + , "node-fs" + , "node-fs-aff" + , "node-glob-basic" + , "node-path" + , "node-process" + , "node-streams" + , "ordered-collections" + , "parallel" + , "partial" + , "posix-types" + , "prelude" + , "refs" + , "safe-coerce" + , "strings" + , "transformers" + , "tuples" + , "unsafe-coerce" + ] +, packages = ./packages.dhall +, sources = + [ "src/**/*.purs" ] +} diff --git a/package-lock.json b/package-lock.json index 653c9ec3..f1fd324e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,8 +18,9 @@ "devDependencies": { "esbuild": "^0.15.5", "purescript": "^0.15.10", + "purescript-psa": "^0.8.2", "purs-tidy": "^0.10.0", - "spago": "^0.93.8" + "spago": "^0.21.0" } }, "node_modules/@gar/promisify": { @@ -117,41 +118,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/@npmcli/fs": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", @@ -304,15 +270,6 @@ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -327,15 +284,6 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -352,34 +300,12 @@ "concat-map": "0.0.1" } }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/buildcheck": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.6.tgz", - "integrity": "sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/byline": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", @@ -532,21 +458,6 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, - "node_modules/cpu-features": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.8.tgz", - "integrity": "sha512-BbHBvtYhUhksqTjr6bhNOjGgMnhwhGTQmOoZGD+K7BCaQDCuZl/Ve1ZxUSMRwVC4D/rkCPQ2MAIeYzrWyK7eEg==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "buildcheck": "~0.0.6", - "nan": "^2.17.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -749,31 +660,6 @@ "node": "^8.12.0 || >=9.7.0" } }, - "node_modules/fast-glob": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", - "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, "node_modules/figgy-pudding": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", @@ -789,18 +675,6 @@ "node": ">= 0.4.0" } }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/flush-write-stream": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", @@ -847,20 +721,6 @@ "readable-stream": "^2.0.0" } }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -891,15 +751,6 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, - "node_modules/fuse.js": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-6.6.2.tgz", - "integrity": "sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -935,18 +786,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -1069,15 +908,6 @@ "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", "dev": true }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -1086,33 +916,12 @@ "node": ">=8" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-lambda": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "dev": true }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/is-plain-obj": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", @@ -1162,18 +971,6 @@ "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/log-symbols": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", @@ -1438,28 +1235,6 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -1657,13 +1432,6 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "node_modules/nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", - "dev": true, - "optional": true - }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -1792,18 +1560,6 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -1917,6 +1673,15 @@ "rimraf": "bin.js" } }, + "node_modules/purescript-psa": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/purescript-psa/-/purescript-psa-0.8.2.tgz", + "integrity": "sha512-4Olf0aQQrNCfcDLXQI3gJgINEQ+3U+4QPLmQ2LHX2L/YOXSwM7fOGIUs/wMm/FQnwERUyQmHKQTJKB4LIjE2fg==", + "dev": true, + "bin": { + "psa": "index.js" + } + }, "node_modules/purs-tidy": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/purs-tidy/-/purs-tidy-0.10.0.tgz", @@ -1926,26 +1691,6 @@ "purs-tidy": "bin/index.js" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", @@ -1983,16 +1728,6 @@ "node": ">= 4" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, "node_modules/rimraf": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz", @@ -2061,29 +1796,6 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, "node_modules/run-queue": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", @@ -2103,7 +1815,8 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "dev": true, + "optional": true }, "node_modules/semver": { "version": "7.5.4", @@ -2252,90 +1965,207 @@ } }, "node_modules/spago": { - "version": "0.93.8", - "resolved": "https://registry.npmjs.org/spago/-/spago-0.93.8.tgz", - "integrity": "sha512-Y909h1xy/fn+DqTBO+O1SUm0sAIMBH7GVOkj9anGLRx4RiKjM0TWVs+/JzlF4ZPE8NqHd1DHGz8cG3oddou/+g==", - "dev": true, - "dependencies": { - "env-paths": "^3.0.0", - "fast-glob": "^3.2.11", - "fs-extra": "^10.0.0", - "fuse.js": "^6.5.3", - "semver": "^7.3.5", - "spdx-expression-parse": "^3.0.1", - "ssh2": "^1.14.0", - "supports-color": "^9.2.3", - "tar": "^6.1.11", - "tmp": "^0.2.1", - "xhr2": "^0.2.1", - "yaml": "^2.1.1" + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/spago/-/spago-0.21.0.tgz", + "integrity": "sha512-1qTPaIhrsLCvneSJt1fyq3CpNMu01Xhcn+b09IMbyrpLcptMoGH5uOtyNL9eohTRMzPWBKUs6ksFLGdjJp7yxQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "make-fetch-happen": "^11.0.1", + "tar": "^6.1.11" }, "bin": { - "spago": "bin/bundle.js" + "spago": "spago" } }, - "node_modules/spago/node_modules/env-paths": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", - "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", + "node_modules/spago/node_modules/@npmcli/fs": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "dev": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/spago/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/spago/node_modules/cacache": { + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.3.tgz", + "integrity": "sha512-jAdjGxmPxZh0IipMdR7fK/4sDSrHMLUV0+GvVUsjwyGNKHsh79kW/otg+GkbXwl6Uzvy9wsvHOX4nUoWldeZMg==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^7.7.1", + "minipass": "^5.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/spago/node_modules/fs-minipass": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz", + "integrity": "sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==", "dev": true, + "dependencies": { + "minipass": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/spago/node_modules/glob": { + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", + "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" + }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/spago/node_modules/supports-color": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", - "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", + "node_modules/spago/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "engines": { "node": ">=12" + } + }, + "node_modules/spago/node_modules/make-fetch-happen": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/spago/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true + "node_modules/spago/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "node_modules/spago/node_modules/minipass-fetch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", "dev": true, "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "minipass": "^5.0.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" } }, - "node_modules/spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", - "dev": true + "node_modules/spago/node_modules/ssri": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.4.tgz", + "integrity": "sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==", + "dev": true, + "dependencies": { + "minipass": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, - "node_modules/ssh2": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.14.0.tgz", - "integrity": "sha512-AqzD1UCqit8tbOKoj6ztDDi1ffJZ2rV2SwlgrVVrHPkV5vWqGJOVp5pmtj18PunkPJAuKQsnInyKV+/Nb2bUnA==", + "node_modules/spago/node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", "dev": true, - "hasInstallScript": true, "dependencies": { - "asn1": "^0.2.6", - "bcrypt-pbkdf": "^1.0.2" + "unique-slug": "^4.0.0" }, "engines": { - "node": ">=10.16.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/spago/node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" }, - "optionalDependencies": { - "cpu-features": "~0.0.8", - "nan": "^2.17.0" + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/ssri": { @@ -2506,51 +2336,6 @@ "xtend": "~4.0.1" } }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/tmp/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true - }, "node_modules/type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", @@ -2587,15 +2372,6 @@ "imurmurhash": "^0.1.4" } }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -2714,15 +2490,6 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "node_modules/xhr2": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.2.1.tgz", - "integrity": "sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -2744,15 +2511,6 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, - "node_modules/yaml": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", - "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, "node_modules/zen-observable": { "version": "0.8.15", "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", diff --git a/package.json b/package.json index 5713d261..e49332c3 100644 --- a/package.json +++ b/package.json @@ -7,13 +7,14 @@ "purs-backend-es": "./backend-es/index.js" }, "scripts": { + "clean": "cd backend-es && rm -rf .spago output && cd ../lib && rm -rf .spago output && cd ../processors && rm -rf .spago output && cd ../snapshots && rm -rf .spago output && cd ../test && rm -rf .spago output", "postinstall": "cd postinstall && spago run", "preversion": "npm run test && npm run test:output-diff", "version": "echo 'export const version = \"v'$npm_package_version'\";' > ./src/Version.js && git add .", "postversion": "git commit -m \"Bump purs-backend-es version ($npm_package_version)\" && git tag purs-backend-es-v$npm_package_version", - "test": "cd test && spago test --censor-build-warnings dependency", + "test": "cd test && spago test", "test:output-diff": "npm run build && ./backend-es/index.js build --int-tags --output-dir=output-es2 && diff -r output-es output-es2 && rm -r output-es2", - "build": "cd backend-es && spago build --purs-args \"-g corefn,js\" --censor-build-warnings dependency --strict && node ./index.dev.js build && node ./index.dev.js bundle-module -m Main --int-tags --platform=node --minify --to=./bundle/index.js", + "build": "cd backend-es && spago build --purs-args \"-g corefn,js\" && node ./index.dev.js build && node ./index.dev.js bundle-module -m Main --int-tags --platform=node --minify --to=./bundle/index.js", "prepublishOnly": "rm -rf backend-es/bundle output output-es && npm run build", "format": "purs-tidy format-in-place lib/src backend-es/src test/src snapshot/src extern/src postinstall/src", "format:check": "purs-tidy check lib/src backend-es/src test/src snapshot/src extern/src postinstall/src" @@ -36,8 +37,9 @@ "devDependencies": { "esbuild": "^0.15.5", "purescript": "^0.15.10", + "purescript-psa": "^0.8.2", "purs-tidy": "^0.10.0", - "spago": "^0.93.8" + "spago": "^0.21.0" }, "dependencies": { "rimraf": "^5.0.1" diff --git a/processors/packages.dhall b/processors/packages.dhall new file mode 100644 index 00000000..38517a99 --- /dev/null +++ b/processors/packages.dhall @@ -0,0 +1,28 @@ +let upstream = + https://github.com/purescript/package-sets/releases/download/psc-0.15.10-20230721/packages.dhall + sha256:8800ac7d0763826544ca3ed3ba61f9dcef761a9e2a1feee0346437d9b861e78f + +in upstream + with lib-backend-optimizer = ../lib/spago.dhall as Location + with dodo-printer = + { dependencies = + [ "ansi", "foldable-traversable", "lists", "maybe", "strings" ] + , repo = "https://github.com/natefaubion/purescript-dodo-printer.git" + , version = "v2.2.1" + } + with node-glob-basic = + { dependencies = + [ "aff" + , "console" + , "effect" + , "lists" + , "maybe" + , "node-fs-aff" + , "node-path" + , "node-process" + , "ordered-collections" + , "strings" + ] + , repo = "https://github.com/natefaubion/purescript-node-glob-basic.git" + , version = "v1.2.2" + } diff --git a/processors/spago.dhall b/processors/spago.dhall new file mode 100644 index 00000000..fbec7d63 --- /dev/null +++ b/processors/spago.dhall @@ -0,0 +1,12 @@ +{- +Welcome to a Spago project! +You can edit this file as you like. +-} +{ name = "processors-backend-optimizer" +, dependencies = + [ "lib-backend-optimizer" + ] +, packages = ./packages.dhall +, sources = + [ "src/**/*.purs" ] +} diff --git a/snapshots/packages.dhall b/snapshots/packages.dhall new file mode 100644 index 00000000..9e1eecb7 --- /dev/null +++ b/snapshots/packages.dhall @@ -0,0 +1,29 @@ +let upstream = + https://github.com/purescript/package-sets/releases/download/psc-0.15.10-20230721/packages.dhall + sha256:8800ac7d0763826544ca3ed3ba61f9dcef761a9e2a1feee0346437d9b861e78f + +in upstream + with lib-backend-optimizer = ../lib/spago.dhall as Location + with processors-backend-optimizer = ../processors/spago.dhall as Location + with dodo-printer = + { dependencies = + [ "ansi", "foldable-traversable", "lists", "maybe", "strings" ] + , repo = "https://github.com/natefaubion/purescript-dodo-printer.git" + , version = "v2.2.1" + } + with node-glob-basic = + { dependencies = + [ "aff" + , "console" + , "effect" + , "lists" + , "maybe" + , "node-fs-aff" + , "node-path" + , "node-process" + , "ordered-collections" + , "strings" + ] + , repo = "https://github.com/natefaubion/purescript-node-glob-basic.git" + , version = "v1.2.2" + } diff --git a/snapshots/snapshots-out/Snapshot.CaseLeafTco.js b/snapshots/snapshots-out/Snapshot.CaseLeafTco.js index 06354d18..fd45e329 100644 --- a/snapshots/snapshots-out/Snapshot.CaseLeafTco.js +++ b/snapshots/snapshots-out/Snapshot.CaseLeafTco.js @@ -5,58 +5,51 @@ const test1 = test1$a0$copy => test1$a1$copy => { let test1$a0 = test1$a0$copy, test1$a1 = test1$a1$copy, test1$c = true, test1$r; while (test1$c) { const b = test1$a0, arr = test1$a1; - const v = Data$dArray.index(arr)(arr.length - 1 | 0); - const v1 = Data$dArray.index(arr)(0); - const $0 = (x, y) => { - if (b) { - test1$c = false; - test1$r = []; - return; - } - test1$a0 = b; - test1$a1 = Data$dSemigroup.concatArray([y, x, 3, y, 5, 6, 7, 8, 9, 10, x, 12, 13, 14, 15, 16, 17])(arr); - }; - if (v.tag === "Just") { - if (v._1 === 2) { - if (v1.tag === "Just") { - if (v1._1 === 1) { + const v = Data$dArray.last(arr); + if (0 < arr.length) { + const $0 = (x, y) => { + if (b) { + test1$c = false; + test1$r = []; + return; + } + test1$a0 = b; + test1$a1 = Data$dSemigroup.concatArray([y, x, 3, y, 5, 6, 7, 8, 9, 10, x, 12, 13, 14, 15, 16, 17])(arr); + }; + if (v.tag === "Just") { + if (v._1 === 2) { + if (arr[0] === 1) { test1$c = false; test1$r = arr; continue; } - $0(v1._1, v._1); + $0(arr[0], v._1); continue; } - if (v1.tag === "Nothing") { - test1$c = false; - test1$r = Data$dSemigroup.concatArray(arr)([v._1]); - continue; - } - $runtime.fail(); - } - if (v1.tag === "Nothing") { - test1$c = false; - test1$r = Data$dSemigroup.concatArray(arr)([v._1]); + $0(arr[0], v._1); continue; } - if (v1.tag === "Just") { - $0(v1._1, v._1); + if (v.tag === "Nothing") { + test1$c = false; + test1$r = Data$dSemigroup.concatArray(arr)([arr[0]]); continue; } $runtime.fail(); } - if (v.tag === "Nothing") { - if (v1.tag === "Nothing") { - test1$c = false; - test1$r = arr; - continue; - } - if (v1.tag === "Just") { + if (v.tag === "Just") { + if (v._1 === 2) { test1$c = false; - test1$r = Data$dSemigroup.concatArray(arr)([v1._1]); + test1$r = Data$dSemigroup.concatArray(arr)([v._1]); continue; } - $runtime.fail(); + test1$c = false; + test1$r = Data$dSemigroup.concatArray(arr)([v._1]); + continue; + } + if (v.tag === "Nothing") { + test1$c = false; + test1$r = arr; + continue; } $runtime.fail(); } diff --git a/snapshots/snapshots-out/Snapshot.InlineArrayIndex.js b/snapshots/snapshots-out/Snapshot.InlineArrayIndex.js index 65462682..c83ea447 100644 --- a/snapshots/snapshots-out/Snapshot.InlineArrayIndex.js +++ b/snapshots/snapshots-out/Snapshot.InlineArrayIndex.js @@ -1,7 +1,6 @@ // @inline export testArrayIndex never import * as $runtime from "../runtime.js"; import * as Assert from "../Assert/index.js"; -import * as Data$dArray from "../Data.Array/index.js"; import * as Data$dMaybe from "../Data.Maybe/index.js"; import * as Data$dShow from "../Data.Show/index.js"; const assertEqual = /* #__PURE__ */ Assert.assertEqual({ @@ -20,7 +19,10 @@ const assertEqual = /* #__PURE__ */ Assert.assertEqual({ $runtime.fail(); } }); -const testArrayIndex = arr => ix => Data$dArray.index(arr)(ix); +const testArrayIndex = arr => ix => { + if (ix >= 0 && ix < arr.length) { return Data$dMaybe.$Maybe("Just", arr[ix]); } + return Data$dMaybe.Nothing; +}; const main = /* #__PURE__ */ (() => { const array = [1, 2, 3]; const $0 = assertEqual("index -1")({expected: Data$dMaybe.Nothing, actual: testArrayIndex(array)(-1)}); diff --git a/snapshots/snapshots-out/Snapshot.Tco05.js b/snapshots/snapshots-out/Snapshot.Tco05.js index d287330d..003920ab 100644 --- a/snapshots/snapshots-out/Snapshot.Tco05.js +++ b/snapshots/snapshots-out/Snapshot.Tco05.js @@ -1,14 +1,11 @@ -import * as $runtime from "../runtime.js"; -import * as Data$dArray from "../Data.Array/index.js"; import * as Data$dMaybe from "../Data.Maybe/index.js"; const span = p => arr => { const go = go$a0$copy => { let go$a0 = go$a0$copy, go$c = true, go$r; while (go$c) { const i = go$a0; - const v = Data$dArray.index(arr)(i); - if (v.tag === "Just") { - if (p(v._1)) { + if (i >= 0 && i < arr.length) { + if (p(arr[i])) { go$a0 = i + 1 | 0; continue; } @@ -16,12 +13,8 @@ const span = p => arr => { go$r = Data$dMaybe.$Maybe("Just", i); continue; } - if (v.tag === "Nothing") { - go$c = false; - go$r = Data$dMaybe.Nothing; - continue; - } - $runtime.fail(); + go$c = false; + go$r = Data$dMaybe.Nothing; } return go$r; }; diff --git a/snapshots/spago.dhall b/snapshots/spago.dhall new file mode 100644 index 00000000..e2940f3a --- /dev/null +++ b/snapshots/spago.dhall @@ -0,0 +1,37 @@ +{- +Welcome to a Spago project! +You can edit this file as you like. +-} +{ name = "snapshots-backend-optimizer" +, dependencies = + [ "arrays" + , "console" + , "convertable-options" + , "effect" + , "either" + , "exceptions" + , "exists" + , "foldable-traversable" + , "foreign-object" + , "functions" + , "heterogeneous" + , "identity" + , "integers" + , "lists" + , "maybe" + , "partial" + , "prelude" + , "profunctor-lenses" + , "record" + , "refs" + , "safe-coerce" + , "st" + , "strings" + , "tuples" + , "type-equality" + , "unsafe-coerce" + , "variant" + ] +, packages = ./packages.dhall +, sources = [ "src/**/*.purs" ] +} diff --git a/test/packages.dhall b/test/packages.dhall new file mode 100644 index 00000000..5b9b640b --- /dev/null +++ b/test/packages.dhall @@ -0,0 +1,30 @@ +let upstream = + https://github.com/purescript/package-sets/releases/download/psc-0.15.10-20230721/packages.dhall + sha256:8800ac7d0763826544ca3ed3ba61f9dcef761a9e2a1feee0346437d9b861e78f + +in upstream + with backend-optimizer = ../backend-es/spago.dhall as Location + with lib-backend-optimizer = ../lib/spago.dhall as Location + with processors-backend-optimizer = ../processors/spago.dhall as Location + with dodo-printer = + { dependencies = + [ "ansi", "foldable-traversable", "lists", "maybe", "strings" ] + , repo = "https://github.com/natefaubion/purescript-dodo-printer.git" + , version = "v2.2.1" + } + with node-glob-basic = + { dependencies = + [ "aff" + , "console" + , "effect" + , "lists" + , "maybe" + , "node-fs-aff" + , "node-path" + , "node-process" + , "ordered-collections" + , "strings" + ] + , repo = "https://github.com/natefaubion/purescript-node-glob-basic.git" + , version = "v1.2.2" + } diff --git a/test/spago.dhall b/test/spago.dhall new file mode 100644 index 00000000..7c713475 --- /dev/null +++ b/test/spago.dhall @@ -0,0 +1,40 @@ +{- +Welcome to a Spago project! +You can edit this file as you like. +-} +{ name = "tests-backend-optimizer" +, dependencies = + [ "aff" + , "ansi" + , "backend-optimizer" + , "argparse-basic" + , "arrays" + , "lib-backend-optimizer" + , "processors-backend-optimizer" + , "console" + , "dodo-printer" + , "effect" + , "either" + , "foldable-traversable" + , "language-cst-parser" + , "maybe" + , "newtype" + , "node-buffer" + , "node-child-process" + , "node-fs" + , "node-fs-aff" + , "node-glob-basic" + , "node-path" + , "node-process" + , "node-streams" + , "ordered-collections" + , "posix-types" + , "prelude" + , "refs" + , "strings" + , "tuples" + ] +, packages = ./packages.dhall +, sources = + [ "src/**/*.purs" ] +} From 2d0b1e3be99074139b9ca17b4041c271063686c4 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Sat, 22 Jul 2023 08:39:24 +0300 Subject: [PATCH 25/34] Uses old spago --- lib/packages.dhall | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/packages.dhall b/lib/packages.dhall index cc2acf1d..6fb3c810 100644 --- a/lib/packages.dhall +++ b/lib/packages.dhall @@ -3,8 +3,6 @@ let upstream = sha256:8800ac7d0763826544ca3ed3ba61f9dcef761a9e2a1feee0346437d9b861e78f in upstream - with lib-backend-optimizer = ../lib-backend-optimizer/spago.dhall as Location - with processors-backend-optimizer = ../processors-backend-optimizer/spago.dhall as Location with dodo-printer = { dependencies = [ "ansi", "foldable-traversable", "lists", "maybe", "strings" ] From a340da611a595732ce38489b65ed58865720df6f Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Sat, 22 Jul 2023 08:46:47 +0300 Subject: [PATCH 26/34] Gets rid of spurious libs --- lib/spago.dhall | 21 +----------------- .../Backend/Optimizer/Semantics.purs | 22 +++++++++---------- 2 files changed, 11 insertions(+), 32 deletions(-) diff --git a/lib/spago.dhall b/lib/spago.dhall index b35dc67c..e97a45e2 100644 --- a/lib/spago.dhall +++ b/lib/spago.dhall @@ -4,21 +4,14 @@ You can edit this file as you like. -} { name = "lib-backend-optimizer" , dependencies = - [ "aff" - , "ansi" - , "argonaut" + ["argonaut" , "argonaut-codecs" - , "argparse-basic" , "arrays" - , "bifunctors" - , "console" , "control" , "debug" , "dodo-printer" - , "effect" , "either" , "enums" - , "filterable" , "foldable-traversable" , "foreign-object" , "integers" @@ -27,25 +20,13 @@ You can edit this file as you like. , "lists" , "maybe" , "newtype" - , "node-buffer" - , "node-child-process" - , "node-fs" - , "node-fs-aff" - , "node-glob-basic" - , "node-path" - , "node-process" - , "node-streams" , "ordered-collections" - , "parallel" , "partial" - , "posix-types" , "prelude" - , "refs" , "safe-coerce" , "strings" , "transformers" , "tuples" - , "unsafe-coerce" ] , packages = ./packages.dhall , sources = diff --git a/lib/src/PureScript/Backend/Optimizer/Semantics.purs b/lib/src/PureScript/Backend/Optimizer/Semantics.purs index 7d7466e8..f2521726 100644 --- a/lib/src/PureScript/Backend/Optimizer/Semantics.purs +++ b/lib/src/PureScript/Backend/Optimizer/Semantics.purs @@ -3,8 +3,6 @@ module PureScript.Backend.Optimizer.Semantics where import Prelude import Control.Alternative (guard) -import Control.Comonad.Cofree (Cofree) -import Control.Comonad.Cofree as Cofree import Data.Array as Array import Data.Array.NonEmpty (NonEmptyArray) import Data.Array.NonEmpty as NonEmptyArray @@ -1541,24 +1539,24 @@ newtype NeutralExpr = NeutralExpr (BackendSyntax NeutralExpr) derive instance Newtype NeutralExpr _ -data ProcessingStage = FirstPass | IntermediatePass | FinalPass -type ProcessorInput = { qual :: Qualified Ident, n :: Int, env :: Env, expr :: BackendExpr, stage :: ProcessingStage } -type Processors = Array (ProcessorInput -> Cofree (Function ProcessorInput) BackendExpr) +type ProcessorInput = { qual :: Qualified Ident, env :: Env, expr :: BackendExpr } +type Processors = Array (ProcessorInput -> Tuple BackendExpr (ProcessorInput -> BackendExpr)) optimize :: Boolean -> Processors -> Ctx -> Env -> Qualified Ident -> Int -> BackendExpr -> Tuple (Array BackendExpr) BackendExpr -optimize traceSteps originalProcessors ctx env qual@(Qualified mn (Ident id)) initN originalExpr = - go (if traceSteps then pure originalExpr else List.Nil) originalProcessors initN originalExpr +optimize traceSteps originalProcessors ctx env qual@(Qualified mn (Ident id)) initN originalExpr = do + let { val: { expr: expr1 }, processors } = process1 originalExpr originalProcessors + go (if traceSteps then pure originalExpr else List.Nil) processors initN expr1 where - go :: List.List BackendExpr -> Processors -> Int -> BackendExpr -> Tuple (Array BackendExpr) BackendExpr - go steps processors' n expr1' = do - let process ee nn pp stage = foldr (\i p -> let res = i p.val in p { val { expr = Cofree.head res }, processors = p.processors <> [ Cofree.tail res ] }) { val: { expr: ee, env, qual, n: nn, stage }, processors: [] } pp - let { val: { expr: expr1 }, processors } = process expr1' n processors' $ if n == initN then FirstPass else IntermediatePass + process1 ee pp = foldr (\i p -> let res = i p.val in p { val { expr = fst res }, processors = p.processors <> [ snd res ] }) { val: { expr: ee, env, qual }, processors: [] } pp + process2 ee pp = foldr (\i p -> let res = i p.val in p { val { expr = res } }) { val: { expr: ee, env, qual } } pp + go :: List.List BackendExpr -> Array (ProcessorInput -> BackendExpr) -> Int -> BackendExpr -> Tuple (Array BackendExpr) BackendExpr + go steps processors n expr1 = do let Tuple rewrite expr2 = goStep n expr1 let newSteps = if traceSteps then List.Cons expr2 steps else steps if rewrite then go newSteps processors (n - 1) expr2 else - Tuple (Array.reverse (List.toUnfoldable steps)) (process expr2 (n - 1) processors FinalPass).val.expr + Tuple (Array.reverse (List.toUnfoldable steps)) (process2 expr2 processors).val.expr goStep :: Int -> BackendExpr -> Tuple Boolean BackendExpr goStep n expr1 From cda2897ad65d8b9344ec7e0029e0010b147c9d5c Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Sat, 22 Jul 2023 08:48:48 +0300 Subject: [PATCH 27/34] Adds dhall files for postinstall --- postinstall/packages.dhall | 105 +++++++++++++++++++++++++++++++++++++ postinstall/spago.dhall | 17 ++++++ 2 files changed, 122 insertions(+) create mode 100644 postinstall/packages.dhall create mode 100644 postinstall/spago.dhall diff --git a/postinstall/packages.dhall b/postinstall/packages.dhall new file mode 100644 index 00000000..e006deb6 --- /dev/null +++ b/postinstall/packages.dhall @@ -0,0 +1,105 @@ +{- +Welcome to your new Dhall package-set! + +Below are instructions for how to edit this file for most use +cases, so that you don't need to know Dhall to use it. + +## Use Cases + +Most will want to do one or both of these options: +1. Override/Patch a package's dependency +2. Add a package not already in the default package set + +This file will continue to work whether you use one or both options. +Instructions for each option are explained below. + +### Overriding/Patching a package + +Purpose: +- Change a package's dependency to a newer/older release than the + default package set's release +- Use your own modified version of some dependency that may + include new API, changed API, removed API by + using your custom git repo of the library rather than + the package set's repo + +Syntax: +where `entityName` is one of the following: +- dependencies +- repo +- version +------------------------------- +let upstream = -- +in upstream + with packageName.entityName = "new value" +------------------------------- + +Example: +------------------------------- +let upstream = -- +in upstream + with halogen.version = "master" + with halogen.repo = "https://example.com/path/to/git/repo.git" + + with halogen-vdom.version = "v4.0.0" + with halogen-vdom.dependencies = [ "extra-dependency" ] # halogen-vdom.dependencies +------------------------------- + +### Additions + +Purpose: +- Add packages that aren't already included in the default package set + +Syntax: +where `` is: +- a tag (i.e. "v4.0.0") +- a branch (i.e. "master") +- commit hash (i.e. "701f3e44aafb1a6459281714858fadf2c4c2a977") +------------------------------- +let upstream = -- +in upstream + with new-package-name = + { dependencies = + [ "dependency1" + , "dependency2" + ] + , repo = + "https://example.com/path/to/git/repo.git" + , version = + "" + } +------------------------------- + +Example: +------------------------------- +let upstream = -- +in upstream + with benchotron = + { dependencies = + [ "arrays" + , "exists" + , "profunctor" + , "strings" + , "quickcheck" + , "lcg" + , "transformers" + , "foldable-traversable" + , "exceptions" + , "node-fs" + , "node-buffer" + , "node-readline" + , "datetime" + , "now" + ] + , repo = + "https://github.com/hdgarrood/purescript-benchotron.git" + , version = + "v7.0.0" + } +------------------------------- +-} +let upstream = + https://github.com/purescript/package-sets/releases/download/psc-0.15.10-20230721/packages.dhall + sha256:8800ac7d0763826544ca3ed3ba61f9dcef761a9e2a1feee0346437d9b861e78f + +in upstream diff --git a/postinstall/spago.dhall b/postinstall/spago.dhall new file mode 100644 index 00000000..41a8576d --- /dev/null +++ b/postinstall/spago.dhall @@ -0,0 +1,17 @@ +{- +Welcome to a Spago project! +You can edit this file as you like. + +Need help? See the following resources: +- Spago documentation: https://github.com/purescript/spago +- Dhall language tour: https://docs.dhall-lang.org/tutorials/Language-Tour.html + +When creating a new Spago project, you can use +`spago init --no-comments` or `spago init -C` +to generate this file without the comments in this block. +-} +{ name = "my-project" +, dependencies = [ "console", "effect", "prelude" ] +, packages = ./packages.dhall +, sources = [ "src/**/*.purs", "test/**/*.purs" ] +} From ff811103f97d92c290ffc8aeab203b28006e33e6 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Sat, 22 Jul 2023 08:53:23 +0300 Subject: [PATCH 28/34] Fixes formatting --- backend-es/src/Main.purs | 2 +- .../Backend/Optimizer/Codegen/EcmaScript/Builder.purs | 2 +- lib/src/PureScript/Backend/Optimizer/Builder.purs | 2 +- lib/src/PureScript/Backend/Optimizer/Convert.purs | 2 +- lib/src/PureScript/Backend/Optimizer/Semantics.purs | 1 + test/src/Main.purs | 2 +- 6 files changed, 6 insertions(+), 5 deletions(-) diff --git a/backend-es/src/Main.purs b/backend-es/src/Main.purs index fa312a60..eacdcbe7 100644 --- a/backend-es/src/Main.purs +++ b/backend-es/src/Main.purs @@ -42,9 +42,9 @@ import PureScript.Backend.Optimizer.Codegen.EcmaScript (codegenModule, esModuleP import PureScript.Backend.Optimizer.Codegen.EcmaScript.Builder (basicBuildMain, externalDirectivesFromFile) import PureScript.Backend.Optimizer.Codegen.EcmaScript.Foreign (esForeignSemantics) import PureScript.Backend.Optimizer.CoreFn (Ident(..), Module(..), ModuleName(..), Qualified(..)) +import PureScript.Backend.Optimizer.Processors (processors) import PureScript.Backend.Optimizer.Semantics.Foreign (coreForeignSemantics) import PureScript.Backend.Optimizer.Tracer.Printer (printModuleSteps) -import PureScript.Backend.Optimizer.Processors (processors) import PureScript.CST.Lexer (lexToken) import PureScript.CST.Lexer as Lexer import PureScript.CST.Types (Token(..)) diff --git a/backend-es/src/PureScript/Backend/Optimizer/Codegen/EcmaScript/Builder.purs b/backend-es/src/PureScript/Backend/Optimizer/Codegen/EcmaScript/Builder.purs index 9196dd06..884589ce 100644 --- a/backend-es/src/PureScript/Backend/Optimizer/Codegen/EcmaScript/Builder.purs +++ b/backend-es/src/PureScript/Backend/Optimizer/Codegen/EcmaScript/Builder.purs @@ -35,7 +35,7 @@ import PureScript.Backend.Optimizer.CoreFn.Json (decodeModule) import PureScript.Backend.Optimizer.CoreFn.Sort (emptyPull, pullResult, resumePull, sortModules) import PureScript.Backend.Optimizer.Directives (parseDirectiveFile) import PureScript.Backend.Optimizer.Directives.Defaults as Defaults -import PureScript.Backend.Optimizer.Semantics (Processors, InlineDirectiveMap) +import PureScript.Backend.Optimizer.Semantics (InlineDirectiveMap, Processors) import PureScript.Backend.Optimizer.Semantics.Foreign (ForeignEval) import PureScript.CST.Errors (printParseError) diff --git a/lib/src/PureScript/Backend/Optimizer/Builder.purs b/lib/src/PureScript/Backend/Optimizer/Builder.purs index c4fc3639..474b0ed2 100644 --- a/lib/src/PureScript/Backend/Optimizer/Builder.purs +++ b/lib/src/PureScript/Backend/Optimizer/Builder.purs @@ -16,7 +16,7 @@ import Data.Tuple (Tuple(..)) import PureScript.Backend.Optimizer.Analysis (BackendAnalysis) import PureScript.Backend.Optimizer.Convert (BackendModule, OptimizationSteps, toBackendModule) import PureScript.Backend.Optimizer.CoreFn (Ann, Ident, Module(..), Qualified) -import PureScript.Backend.Optimizer.Semantics (Processors, ExternImpl, InlineDirectiveMap) +import PureScript.Backend.Optimizer.Semantics (ExternImpl, InlineDirectiveMap, Processors) import PureScript.Backend.Optimizer.Semantics.Foreign (ForeignEval) type BuildEnv = diff --git a/lib/src/PureScript/Backend/Optimizer/Convert.purs b/lib/src/PureScript/Backend/Optimizer/Convert.purs index 4892058a..1cf1e80e 100644 --- a/lib/src/PureScript/Backend/Optimizer/Convert.purs +++ b/lib/src/PureScript/Backend/Optimizer/Convert.purs @@ -73,7 +73,7 @@ import Partial.Unsafe (unsafeCrashWith, unsafePartial) import PureScript.Backend.Optimizer.Analysis (BackendAnalysis) import PureScript.Backend.Optimizer.CoreFn (Ann(..), Bind(..), Binder(..), Binding(..), CaseAlternative(..), CaseGuard(..), Comment, ConstructorType(..), Expr(..), Guard(..), Ident(..), Literal(..), Meta(..), Module(..), ModuleName(..), ProperName, Qualified(..), ReExport, findProp, propKey, propValue, qualifiedModuleName, unQualified) import PureScript.Backend.Optimizer.Directives (DirectiveHeaderResult, parseDirectiveHeader) -import PureScript.Backend.Optimizer.Semantics (BackendExpr(..), Processors, BackendSemantics, Ctx, DataTypeMeta, Env(..), EvalRef(..), ExternImpl(..), ExternSpine, InlineAccessor(..), InlineDirective(..), InlineDirectiveMap, NeutralExpr(..), build, evalExternFromImpl, freeze, optimize) +import PureScript.Backend.Optimizer.Semantics (BackendExpr(..), BackendSemantics, Ctx, DataTypeMeta, Env(..), EvalRef(..), ExternImpl(..), ExternSpine, InlineAccessor(..), InlineDirective(..), InlineDirectiveMap, NeutralExpr(..), Processors, build, evalExternFromImpl, freeze, optimize) import PureScript.Backend.Optimizer.Semantics.Foreign (ForeignEval) import PureScript.Backend.Optimizer.Syntax (BackendAccessor(..), BackendOperator(..), BackendOperator1(..), BackendOperator2(..), BackendOperatorOrd(..), BackendSyntax(..), Level(..), Pair(..)) import PureScript.Backend.Optimizer.Utils (foldl1Array) diff --git a/lib/src/PureScript/Backend/Optimizer/Semantics.purs b/lib/src/PureScript/Backend/Optimizer/Semantics.purs index f2521726..ec61d91f 100644 --- a/lib/src/PureScript/Backend/Optimizer/Semantics.purs +++ b/lib/src/PureScript/Backend/Optimizer/Semantics.purs @@ -1549,6 +1549,7 @@ optimize traceSteps originalProcessors ctx env qual@(Qualified mn (Ident id)) in where process1 ee pp = foldr (\i p -> let res = i p.val in p { val { expr = fst res }, processors = p.processors <> [ snd res ] }) { val: { expr: ee, env, qual }, processors: [] } pp process2 ee pp = foldr (\i p -> let res = i p.val in p { val { expr = res } }) { val: { expr: ee, env, qual } } pp + go :: List.List BackendExpr -> Array (ProcessorInput -> BackendExpr) -> Int -> BackendExpr -> Tuple (Array BackendExpr) BackendExpr go steps processors n expr1 = do let Tuple rewrite expr2 = goStep n expr1 diff --git a/test/src/Main.purs b/test/src/Main.purs index e17325a3..37ec36ef 100644 --- a/test/src/Main.purs +++ b/test/src/Main.purs @@ -36,7 +36,6 @@ import Node.Glob.Basic (expandGlobsCwd) import Node.Path as Path import Node.Process as Process import PureScript.Backend.Optimizer.Builder (buildModules) -import PureScript.Backend.Optimizer.Processors (processors) import PureScript.Backend.Optimizer.Codegen.EcmaScript (codegenModule) import PureScript.Backend.Optimizer.Codegen.EcmaScript.Builder (coreFnModulesFromOutput) import PureScript.Backend.Optimizer.Codegen.EcmaScript.Foreign (esForeignSemantics) @@ -44,6 +43,7 @@ import PureScript.Backend.Optimizer.Convert (BackendModule) import PureScript.Backend.Optimizer.CoreFn (Comment(..), Ident(..), Module(..), ModuleName(..), Qualified(..)) import PureScript.Backend.Optimizer.Directives (parseDirectiveFile) import PureScript.Backend.Optimizer.Directives.Defaults (defaultDirectives) +import PureScript.Backend.Optimizer.Processors (processors) import PureScript.Backend.Optimizer.Semantics.Foreign (coreForeignSemantics) import PureScript.Backend.Optimizer.Tracer.Printer (printModuleSteps) import PureScript.CST.Lexer (lexToken) From d7f2ab52b4caf21e28be04d17f1f816c81e54c55 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Sat, 22 Jul 2023 14:17:40 +0300 Subject: [PATCH 29/34] Changes processor type --- lib/spago.dhall | 1 + .../Backend/Optimizer/Semantics.purs | 26 ++++++++++++------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/lib/spago.dhall b/lib/spago.dhall index e97a45e2..343bba74 100644 --- a/lib/spago.dhall +++ b/lib/spago.dhall @@ -12,6 +12,7 @@ You can edit this file as you like. , "dodo-printer" , "either" , "enums" + , "free" , "foldable-traversable" , "foreign-object" , "integers" diff --git a/lib/src/PureScript/Backend/Optimizer/Semantics.purs b/lib/src/PureScript/Backend/Optimizer/Semantics.purs index ec61d91f..1feece49 100644 --- a/lib/src/PureScript/Backend/Optimizer/Semantics.purs +++ b/lib/src/PureScript/Backend/Optimizer/Semantics.purs @@ -3,6 +3,7 @@ module PureScript.Backend.Optimizer.Semantics where import Prelude import Control.Alternative (guard) +import Control.Comonad.Cofree as Cofree import Data.Array as Array import Data.Array.NonEmpty (NonEmptyArray) import Data.Array.NonEmpty as NonEmptyArray @@ -1539,25 +1540,30 @@ newtype NeutralExpr = NeutralExpr (BackendSyntax NeutralExpr) derive instance Newtype NeutralExpr _ -type ProcessorInput = { qual :: Qualified Ident, env :: Env, expr :: BackendExpr } -type Processors = Array (ProcessorInput -> Tuple BackendExpr (ProcessorInput -> BackendExpr)) +type ProcessorInput = { qual :: Qualified Ident, env :: Env, expr :: BackendExpr, position :: ProcessorPosition } +type Processors = Array (ProcessorInput -> Cofree.Cofree (Function ProcessorInput) BackendExpr) + +data ProcessorPosition = ProcessorAtHead | ProcessorAtTail Int optimize :: Boolean -> Processors -> Ctx -> Env -> Qualified Ident -> Int -> BackendExpr -> Tuple (Array BackendExpr) BackendExpr optimize traceSteps originalProcessors ctx env qual@(Qualified mn (Ident id)) initN originalExpr = do - let { val: { expr: expr1 }, processors } = process1 originalExpr originalProcessors - go (if traceSteps then pure originalExpr else List.Nil) processors initN expr1 + let { val: { expr: expr1 }, processors } = process originalExpr originalProcessors ProcessorAtHead + go (if traceSteps then pure originalExpr else List.Nil) processors initN 0 true expr1 where - process1 ee pp = foldr (\i p -> let res = i p.val in p { val { expr = fst res }, processors = p.processors <> [ snd res ] }) { val: { expr: ee, env, qual }, processors: [] } pp - process2 ee pp = foldr (\i p -> let res = i p.val in p { val { expr = res } }) { val: { expr: ee, env, qual } } pp + process :: BackendExpr -> Processors -> ProcessorPosition -> { val :: ProcessorInput, processors :: Processors } + process ee pp vv = foldr (\i p -> let res = i p.val in p { val { expr = Cofree.head res }, processors = p.processors <> [ Cofree.tail res ] }) { val: { expr: ee, env, qual, position: vv }, processors: [] } pp - go :: List.List BackendExpr -> Array (ProcessorInput -> BackendExpr) -> Int -> BackendExpr -> Tuple (Array BackendExpr) BackendExpr - go steps processors n expr1 = do + go :: List.List BackendExpr -> Array (ProcessorInput -> Cofree.Cofree (Function ProcessorInput) BackendExpr) -> Int -> Int -> Boolean -> BackendExpr -> Tuple (Array BackendExpr) BackendExpr + go steps processors n pRuns shouldProcess expr1 = do let Tuple rewrite expr2 = goStep n expr1 let newSteps = if traceSteps then List.Cons expr2 steps else steps if rewrite then - go newSteps processors (n - 1) expr2 + go newSteps processors (n - 1) pRuns shouldProcess expr2 + else if shouldProcess then do + let { val: { expr }, processors } = process expr2 processors (ProcessorAtTail pRuns) + go newSteps processors (n - 1) (pRuns + 1) false expr else - Tuple (Array.reverse (List.toUnfoldable steps)) (process2 expr2 processors).val.expr + Tuple (Array.reverse (List.toUnfoldable steps)) expr2 goStep :: Int -> BackendExpr -> Tuple Boolean BackendExpr goStep n expr1 From 33fcb75ea69db37b3a7ad5c637fccef0ab7083d6 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Sat, 22 Jul 2023 14:20:03 +0300 Subject: [PATCH 30/34] Allows for rewrite from processor --- lib/src/PureScript/Backend/Optimizer/Semantics.purs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/src/PureScript/Backend/Optimizer/Semantics.purs b/lib/src/PureScript/Backend/Optimizer/Semantics.purs index 1feece49..cf133eb5 100644 --- a/lib/src/PureScript/Backend/Optimizer/Semantics.purs +++ b/lib/src/PureScript/Backend/Optimizer/Semantics.purs @@ -1558,7 +1558,7 @@ optimize traceSteps originalProcessors ctx env qual@(Qualified mn (Ident id)) in let Tuple rewrite expr2 = goStep n expr1 let newSteps = if traceSteps then List.Cons expr2 steps else steps if rewrite then - go newSteps processors (n - 1) pRuns shouldProcess expr2 + go newSteps processors (n - 1) pRuns true expr2 else if shouldProcess then do let { val: { expr }, processors } = process expr2 processors (ProcessorAtTail pRuns) go newSteps processors (n - 1) (pRuns + 1) false expr From 449993b185f09dc1bfbfc8f232fb020e19d1bee3 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Sat, 22 Jul 2023 19:46:07 +0300 Subject: [PATCH 31/34] Adds ctx to the processors --- lib/src/PureScript/Backend/Optimizer/Semantics.purs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/src/PureScript/Backend/Optimizer/Semantics.purs b/lib/src/PureScript/Backend/Optimizer/Semantics.purs index cf133eb5..884c3809 100644 --- a/lib/src/PureScript/Backend/Optimizer/Semantics.purs +++ b/lib/src/PureScript/Backend/Optimizer/Semantics.purs @@ -1540,7 +1540,7 @@ newtype NeutralExpr = NeutralExpr (BackendSyntax NeutralExpr) derive instance Newtype NeutralExpr _ -type ProcessorInput = { qual :: Qualified Ident, env :: Env, expr :: BackendExpr, position :: ProcessorPosition } +type ProcessorInput = { qual :: Qualified Ident, env :: Env, ctx :: Ctx, expr :: BackendExpr, position :: ProcessorPosition } type Processors = Array (ProcessorInput -> Cofree.Cofree (Function ProcessorInput) BackendExpr) data ProcessorPosition = ProcessorAtHead | ProcessorAtTail Int @@ -1551,7 +1551,7 @@ optimize traceSteps originalProcessors ctx env qual@(Qualified mn (Ident id)) in go (if traceSteps then pure originalExpr else List.Nil) processors initN 0 true expr1 where process :: BackendExpr -> Processors -> ProcessorPosition -> { val :: ProcessorInput, processors :: Processors } - process ee pp vv = foldr (\i p -> let res = i p.val in p { val { expr = Cofree.head res }, processors = p.processors <> [ Cofree.tail res ] }) { val: { expr: ee, env, qual, position: vv }, processors: [] } pp + process ee pp vv = foldr (\i p -> let res = i p.val in p { val { expr = Cofree.head res }, processors = p.processors <> [ Cofree.tail res ] }) { val: { expr: ee, env, ctx, qual, position: vv }, processors: [] } pp go :: List.List BackendExpr -> Array (ProcessorInput -> Cofree.Cofree (Function ProcessorInput) BackendExpr) -> Int -> Int -> Boolean -> BackendExpr -> Tuple (Array BackendExpr) BackendExpr go steps processors n pRuns shouldProcess expr1 = do From 4cc91dec4c31781883294504203157eb69081eb0 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Sun, 23 Jul 2023 10:26:14 +0300 Subject: [PATCH 32/34] Makes go simpler --- .../Backend/Optimizer/Semantics.purs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/lib/src/PureScript/Backend/Optimizer/Semantics.purs b/lib/src/PureScript/Backend/Optimizer/Semantics.purs index 884c3809..375b7401 100644 --- a/lib/src/PureScript/Backend/Optimizer/Semantics.purs +++ b/lib/src/PureScript/Backend/Optimizer/Semantics.purs @@ -1548,22 +1548,24 @@ data ProcessorPosition = ProcessorAtHead | ProcessorAtTail Int optimize :: Boolean -> Processors -> Ctx -> Env -> Qualified Ident -> Int -> BackendExpr -> Tuple (Array BackendExpr) BackendExpr optimize traceSteps originalProcessors ctx env qual@(Qualified mn (Ident id)) initN originalExpr = do let { val: { expr: expr1 }, processors } = process originalExpr originalProcessors ProcessorAtHead - go (if traceSteps then pure originalExpr else List.Nil) processors initN 0 true expr1 + go (if traceSteps then pure originalExpr else List.Nil) processors initN 0 expr1 where process :: BackendExpr -> Processors -> ProcessorPosition -> { val :: ProcessorInput, processors :: Processors } process ee pp vv = foldr (\i p -> let res = i p.val in p { val { expr = Cofree.head res }, processors = p.processors <> [ Cofree.tail res ] }) { val: { expr: ee, env, ctx, qual, position: vv }, processors: [] } pp - go :: List.List BackendExpr -> Array (ProcessorInput -> Cofree.Cofree (Function ProcessorInput) BackendExpr) -> Int -> Int -> Boolean -> BackendExpr -> Tuple (Array BackendExpr) BackendExpr - go steps processors n pRuns shouldProcess expr1 = do + go :: List.List BackendExpr -> Array (ProcessorInput -> Cofree.Cofree (Function ProcessorInput) BackendExpr) -> Int -> Int -> BackendExpr -> Tuple (Array BackendExpr) BackendExpr + go steps processors n pRuns expr1 = do let Tuple rewrite expr2 = goStep n expr1 let newSteps = if traceSteps then List.Cons expr2 steps else steps if rewrite then - go newSteps processors (n - 1) pRuns true expr2 - else if shouldProcess then do + go newSteps processors (n - 1) pRuns expr2 + else do let { val: { expr }, processors } = process expr2 processors (ProcessorAtTail pRuns) - go newSteps processors (n - 1) (pRuns + 1) false expr - else - Tuple (Array.reverse (List.toUnfoldable steps)) expr2 + let BackendAnalysis { rewrite } = analysisOf expr + if rewrite then + go newSteps processors (n - 1) (pRuns + 1) expr + else + Tuple (Array.reverse (List.toUnfoldable steps)) expr goStep :: Int -> BackendExpr -> Tuple Boolean BackendExpr goStep n expr1 From ecb94b641db09ee6e599467b8817cc2ba6bfd214 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Thu, 17 Aug 2023 08:52:50 +0300 Subject: [PATCH 33/34] Adds back js target --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1a591b75..ac5d7a03 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "postversion": "git commit -m \"Bump purs-backend-es version ($npm_package_version)\" && git tag purs-backend-es-v$npm_package_version", "test": "cd test && spago test", "test:output-diff": "npm run build && ./backend-es/index.js build --timing --int-tags --output-dir=output-es2 && diff -r output-es output-es2 && rm -r output-es2", - "build": "cd backend-es && spago build --purs-args \"-g corefn\" && node ./index.dev.js build && node ./index.dev.js bundle-module -m Main --int-tags --platform=node --minify --to=./bundle/index.js", + "build": "cd backend-es && spago build --purs-args \"-g corefn,js\" && node ./index.dev.js build && node ./index.dev.js bundle-module -m Main --int-tags --platform=node --minify --to=./bundle/index.js", "prepublishOnly": "rm -rf backend-es/bundle output output-es && npm run build", "format": "purs-tidy format-in-place lib/src backend-es/src test/src snapshot/src extern/src postinstall/src", "format:check": "purs-tidy check lib/src backend-es/src test/src snapshot/src extern/src postinstall/src" From d160a1435d189438e7ec614736e3fc2fc5562d94 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Thu, 17 Aug 2023 19:29:30 +0300 Subject: [PATCH 34/34] Writes processors script --- postinstall/spago.dhall | 15 ++++++++++++++- postinstall/src/Main.purs | 39 ++++++++++++++++++++++++++------------- processors/spago.dhall | 7 ++----- 3 files changed, 42 insertions(+), 19 deletions(-) diff --git a/postinstall/spago.dhall b/postinstall/spago.dhall index 41a8576d..b69fd308 100644 --- a/postinstall/spago.dhall +++ b/postinstall/spago.dhall @@ -11,7 +11,20 @@ When creating a new Spago project, you can use to generate this file without the comments in this block. -} { name = "my-project" -, dependencies = [ "console", "effect", "prelude" ] +, dependencies = + [ "aff" + , "console" + , "effect" + , "foldable-traversable" + , "foreign-object" + , "maybe" + , "node-child-process" + , "node-fs" + , "node-path" + , "node-process" + , "prelude" + , "sunde" + ] , packages = ./packages.dhall , sources = [ "src/**/*.purs", "test/**/*.purs" ] } diff --git a/postinstall/src/Main.purs b/postinstall/src/Main.purs index d146f19b..b1e9b786 100644 --- a/postinstall/src/Main.purs +++ b/postinstall/src/Main.purs @@ -2,23 +2,36 @@ module Main where import Prelude +import Data.Foldable (for_) +import Data.Maybe (Maybe(..)) import Effect (Effect) +import Effect.Aff (launchAff_) +import Effect.Class (liftEffect) +import Effect.Console (log) +import Foreign.Object as Object +import Node.ChildProcess as CP +import Node.FS.Sync as FS +import Node.Path as Path +import Node.Process as Process +import Sunde as S + foreign import copyFolderSync :: String -> String -> Effect Unit foreign import rmRecursive :: String -> Effect Unit --- runBuild :: String -> Effect Unit --- runBuild _ = pure unit - main :: Effect Unit main = do - pure unit --- initCwd <- Object.lookup "INIT_CWD" <$> Process.getEnv --- for_ initCwd \cwd -> do --- let filePath = Path.concat [ cwd, "purs-backend-es-processors" ] --- backendProcessorsExists <- FS.exists filePath --- when backendProcessorsExists do --- let externalPath = Path.concat [ cwd, "node_modules", "purs-backend-es", "external" ] --- rmRecursive externalPath --- copyFolderSync filePath externalPath --- runBuild cwd + initCwd <- Object.lookup "INIT_CWD" <$> Process.getEnv + for_ initCwd \cwd -> do + let filePath = Path.concat [ cwd, "purs-backend-es-processors" ] + backendProcessorsExists <- FS.exists filePath + if backendProcessorsExists then do + log "Processors found for purs-backend-es. Recompiling." + let externalPath = Path.concat [ cwd, "node_modules", "purs-backend-es", "processors", "src" ] + rmRecursive externalPath + copyFolderSync filePath externalPath + liftEffect $ Process.chdir $ Path.concat [ "node_modules", "purs-backend-es" ] + launchAff_ do + void $ S.spawn { cmd: "npm", args: ["run", "build"], stdin: Nothing } CP.defaultSpawnOptions + else + log "No processors found for purs-backend-es." diff --git a/processors/spago.dhall b/processors/spago.dhall index fbec7d63..e7fa954e 100644 --- a/processors/spago.dhall +++ b/processors/spago.dhall @@ -3,10 +3,7 @@ Welcome to a Spago project! You can edit this file as you like. -} { name = "processors-backend-optimizer" -, dependencies = - [ "lib-backend-optimizer" - ] +, dependencies = [ "lib-backend-optimizer"] , packages = ./packages.dhall -, sources = - [ "src/**/*.purs" ] +, sources = [ "src/**/*.purs" ] }