@bifravst/aws-cdk-lambda-helpers 4.0.96 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +16 -0
- package/dist/cdk/TestApp.d.ts +5 -0
- package/dist/cdk/TestApp.js +12 -0
- package/dist/cdk/TestStack.d.ts +14 -0
- package/dist/cdk/TestStack.js +44 -0
- package/dist/cdk/baseLayer.d.ts +2 -0
- package/dist/cdk/baseLayer.js +7 -0
- package/dist/cdk/e2e.js +11 -0
- package/dist/cdk/lambda-updated.d.ts +2 -0
- package/dist/cdk/lambda-updated.js +4 -0
- package/dist/cdk/lambda-with-subpath.d.ts +2 -0
- package/dist/cdk/lambda-with-subpath.js +7 -0
- package/dist/cdk/lambda.d.ts +2 -0
- package/dist/cdk/lambda.js +4 -0
- package/dist/cdk/packTestLambdas.d.ts +6 -0
- package/dist/cdk/packTestLambdas.js +14 -0
- package/dist/cdk/update-lambdas.js +21 -0
- package/dist/e2e-updated.spec.js +17 -0
- package/dist/e2e.spec.js +27 -0
- package/dist/lambdas/test.zip +0 -0
- package/dist/lambdas/testAliasImports.zip +0 -0
- package/dist/layers/baseLayer/nodejs/node_modules/.package-lock.json +21 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Alt/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Alternative/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Applicative/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Apply/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Array/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Bifunctor/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/BooleanAlgebra/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Bounded/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/BoundedDistributiveLattice/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/BoundedJoinSemilattice/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/BoundedLattice/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/BoundedMeetSemilattice/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/CHANGELOG.md +3375 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Category/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Chain/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ChainRec/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Choice/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Comonad/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Compactable/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Console/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Const/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Contravariant/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Date/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/DistributiveLattice/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Either/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/EitherT/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Endomorphism/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Eq/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Extend/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Field/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Filterable/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/FilterableWithIndex/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Foldable/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/FoldableWithIndex/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/FromEither/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/FromIO/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/FromReader/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/FromState/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/FromTask/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/FromThese/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Functor/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/FunctorWithIndex/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Group/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/HKT/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/HKT.d.ts +94 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/HeytingAlgebra/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/IO/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/IOEither/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/IOOption/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/IORef/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Identity/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Invariant/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/JoinSemilattice/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Json/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/LICENSE +21 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Lattice/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Magma/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Map/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/MeetSemilattice/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Monad/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/MonadIO/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/MonadTask/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/MonadThrow/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Monoid/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/NaturalTransformation/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/NonEmptyArray/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Option/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/OptionT/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Ord/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Ordering/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Pointed/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Predicate/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Profunctor/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/README.md +110 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Random/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Reader/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ReaderEither/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ReaderIO/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ReaderT/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ReaderTask/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ReaderTaskEither/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ReadonlyArray/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ReadonlyMap/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ReadonlyNonEmptyArray/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ReadonlyRecord/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ReadonlySet/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ReadonlyTuple/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Record/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Refinement/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Ring/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Semigroup/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Semigroupoid/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Semiring/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Separated/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Set/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Show/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/State/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/StateReaderTaskEither/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/StateT/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Store/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Strong/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Task/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/TaskEither/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/TaskOption/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/TaskThese/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/These/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/TheseT/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Traced/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Traversable/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/TraversableWithIndex/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Tree/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Tuple/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Unfoldable/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ValidationT/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Witherable/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Writer/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/WriterT/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Zero/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/boolean/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Alt.d.ts +86 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Alt.js +3 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Alternative.d.ts +108 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Alternative.js +33 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Applicative.d.ts +267 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Applicative.js +39 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Apply.d.ts +658 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Apply.js +178 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Array.d.ts +2215 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Array.js +2517 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Bifunctor.d.ts +60 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/BooleanAlgebra.d.ts +43 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/BooleanAlgebra.js +78 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Bounded.d.ts +41 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Bounded.js +51 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/BoundedDistributiveLattice.d.ts +20 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/BoundedDistributiveLattice.js +17 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/BoundedJoinSemilattice.d.ts +15 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/BoundedLattice.d.ts +15 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/BoundedMeetSemilattice.d.ts +15 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Category.d.ts +33 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Category.js +1 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Chain.d.ts +172 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Chain.js +14 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ChainRec.d.ts +59 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ChainRec.js +10 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Choice.d.ts +174 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Choice.js +16 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Comonad.d.ts +54 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Comonad.js +1 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Compactable.d.ts +320 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Compactable.js +21 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Console.d.ts +20 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Console.js +32 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Const.d.ts +169 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Const.js +176 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Contravariant.d.ts +62 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Contravariant.js +1 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Date.d.ts +49 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Date.js +61 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/DistributiveLattice.d.ts +20 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/DistributiveLattice.js +14 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Either.d.ts +1354 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Either.js +1480 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/EitherT.d.ts +669 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/EitherT.js +137 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Endomorphism.d.ts +40 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Endomorphism.js +28 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Eq.d.ts +206 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Eq.js +214 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Extend.d.ts +54 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Extend.js +1 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Field.d.ts +36 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Field.js +43 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Filterable.d.ts +628 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Filterable.js +52 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FilterableWithIndex.d.ts +255 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FilterableWithIndex.js +1 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Foldable.d.ts +423 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Foldable.js +64 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FoldableWithIndex.d.ts +290 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FoldableWithIndex.js +49 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromEither.d.ts +337 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromEither.js +56 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromIO.d.ts +152 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromIO.js +25 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromReader.d.ts +136 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromReader.js +30 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromState.d.ts +128 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromState.js +21 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromTask.d.ts +144 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromTask.js +25 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromThese.d.ts +73 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromThese.js +9 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Functor.d.ts +452 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Functor.js +53 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FunctorWithIndex.d.ts +203 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FunctorWithIndex.js +27 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Group.d.ts +15 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Group.js +1 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/HKT/index.js +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/HKT/package.json +3 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/HeytingAlgebra.d.ts +32 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/HeytingAlgebra.js +1 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/IO.d.ts +311 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/IO.js +340 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/IOEither.d.ts +1042 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/IOEither.js +1062 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/IOOption.d.ts +616 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/IOOption.js +626 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/IORef.d.ts +37 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/IORef.js +46 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Identity.d.ts +295 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Identity.js +340 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Invariant.d.ts +62 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Invariant.js +1 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/JoinSemilattice.d.ts +19 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/JoinSemilattice.js +13 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Json.d.ts +54 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Json.js +49 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Lattice.d.ts +15 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Lattice.js +1 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Magma.d.ts +58 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Magma.js +75 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Map.d.ts +421 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Map.js +750 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/MeetSemilattice.d.ts +19 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/MeetSemilattice.js +13 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Monad.d.ts +61 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Monad.js +1 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/MonadIO.d.ts +43 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/MonadIO.js +1 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/MonadTask.d.ts +43 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/MonadTask.js +1 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/MonadThrow.d.ts +61 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/MonadThrow.js +1 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Monoid.d.ts +268 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Monoid.js +278 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/NaturalTransformation.d.ts +132 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/NaturalTransformation.js +1 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/NonEmptyArray.d.ts +855 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/NonEmptyArray.js +1152 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Option.d.ts +1150 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Option.js +1224 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/OptionT.d.ts +551 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/OptionT.js +94 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Ord.d.ts +355 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Ord.js +429 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Ordering.d.ts +84 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Ordering.js +92 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Pointed.d.ts +62 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Pointed.js +1 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Predicate.d.ts +68 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Predicate.js +84 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Profunctor.d.ts +49 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Profunctor.js +1 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Random.d.ts +36 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Random.js +45 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Reader.d.ts +492 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Reader.js +535 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReaderEither.d.ts +1057 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReaderEither.js +956 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReaderIO.d.ts +499 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReaderIO.js +472 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReaderT.d.ts +298 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReaderT.js +42 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReaderTask.d.ts +787 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReaderTask.js +781 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReaderTaskEither.d.ts +1773 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReaderTaskEither.js +1605 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlyArray.d.ts +1716 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlyArray.js +2125 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlyMap.d.ts +476 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlyMap.js +959 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlyNonEmptyArray.d.ts +933 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlyNonEmptyArray.js +1224 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlyRecord.d.ts +1385 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlyRecord.js +1365 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlySet.d.ts +258 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlySet.js +448 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlyTuple.d.ts +203 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlyTuple.js +329 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Record.d.ts +1334 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Record.js +1139 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Refinement.d.ts +55 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Refinement.js +73 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Ring.d.ts +53 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Ring.js +76 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Semigroup.d.ts +302 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Semigroup.js +373 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Semigroupoid.d.ts +54 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Semigroupoid.js +1 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Semiring.d.ts +18 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Semiring.js +35 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Separated.d.ts +91 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Separated.js +97 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Set.d.ts +231 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Set.js +387 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Show.d.ts +64 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Show.js +93 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/State.d.ts +291 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/State.js +322 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/StateReaderTaskEither.d.ts +1241 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/StateReaderTaskEither.js +1144 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/StateT.d.ts +313 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/StateT.js +69 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Store.d.ts +117 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Store.js +101 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Strong.d.ts +172 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Strong.js +18 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Task.d.ts +500 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Task.js +592 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/TaskEither.d.ts +1437 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/TaskEither.js +1464 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/TaskOption.d.ts +767 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/TaskOption.js +871 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/TaskThese.d.ts +401 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/TaskThese.js +457 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/These.d.ts +468 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/These.js +663 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/TheseT.d.ts +463 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/TheseT.js +91 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Traced.d.ts +85 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Traced.js +93 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Traversable.d.ts +550 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Traversable.js +38 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/TraversableWithIndex.d.ts +191 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/TraversableWithIndex.js +1 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Tree.d.ts +393 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Tree.js +482 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Tuple.d.ts +198 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Tuple.js +316 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Unfoldable.d.ts +65 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Unfoldable.js +1 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ValidationT.d.ts +73 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ValidationT.js +21 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Witherable.d.ts +575 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Witherable.js +19 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Writer.d.ts +141 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Writer.js +192 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/WriterT.d.ts +147 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/WriterT.js +59 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Zero.d.ts +83 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Zero.js +3 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/boolean.d.ts +139 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/boolean.js +162 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/function.d.ts +579 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/function.js +345 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/index.d.ts +718 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/index.js +717 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/internal.d.ts +1 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/internal.js +120 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/number.d.ts +99 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/number.js +126 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/pipeable.d.ts +2275 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/pipeable.js +198 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/string.d.ts +226 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/string.js +266 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/struct.d.ts +42 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/struct.js +61 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/void.d.ts +15 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/void.js +17 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/function/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/internal/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Alt.d.ts +86 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Alt.js +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Alternative.d.ts +108 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Alternative.js +37 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Applicative.d.ts +267 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Applicative.js +43 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Apply.d.ts +658 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Apply.js +210 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Array.d.ts +2215 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Array.js +2621 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Bifunctor.d.ts +60 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Bifunctor.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/BooleanAlgebra.d.ts +43 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/BooleanAlgebra.js +82 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Bounded.d.ts +41 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Bounded.js +79 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/BoundedDistributiveLattice.d.ts +20 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/BoundedDistributiveLattice.js +20 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/BoundedJoinSemilattice.d.ts +15 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/BoundedJoinSemilattice.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/BoundedLattice.d.ts +15 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/BoundedLattice.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/BoundedMeetSemilattice.d.ts +15 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/BoundedMeetSemilattice.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Category.d.ts +33 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Category.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Chain.d.ts +172 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Chain.js +19 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ChainRec.d.ts +59 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ChainRec.js +14 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Choice.d.ts +174 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Choice.js +22 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Comonad.d.ts +54 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Comonad.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Compactable.d.ts +320 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Compactable.js +49 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Console.d.ts +20 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Console.js +39 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Const.d.ts +169 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Const.js +186 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Contravariant.d.ts +62 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Contravariant.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Date.d.ts +49 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Date.js +89 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/DistributiveLattice.d.ts +20 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/DistributiveLattice.js +17 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Either.d.ts +1354 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Either.js +1542 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/EitherT.d.ts +669 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/EitherT.js +189 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Endomorphism.d.ts +40 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Endomorphism.js +33 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Eq.d.ts +206 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Eq.js +223 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Extend.d.ts +54 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Extend.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Field.d.ts +36 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Field.js +48 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Filterable.d.ts +628 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Filterable.js +59 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FilterableWithIndex.d.ts +255 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FilterableWithIndex.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Foldable.d.ts +423 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Foldable.js +76 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FoldableWithIndex.d.ts +290 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FoldableWithIndex.js +55 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromEither.d.ts +337 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromEither.js +90 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromIO.d.ts +152 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromIO.js +31 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromReader.d.ts +136 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromReader.js +61 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromState.d.ts +128 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromState.js +52 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromTask.d.ts +144 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromTask.js +31 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromThese.d.ts +73 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromThese.js +12 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Functor.d.ts +452 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Functor.js +57 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FunctorWithIndex.d.ts +203 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FunctorWithIndex.js +31 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Group.d.ts +15 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Group.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/HKT/index.js +7 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/HKT/package.json +3 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/HeytingAlgebra.d.ts +32 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/HeytingAlgebra.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/IO.d.ts +311 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/IO.js +366 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/IOEither.d.ts +1042 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/IOEither.js +1102 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/IOOption.d.ts +616 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/IOOption.js +650 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/IORef.d.ts +37 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/IORef.js +50 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Identity.d.ts +295 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Identity.js +370 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Invariant.d.ts +62 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Invariant.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/JoinSemilattice.d.ts +19 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/JoinSemilattice.js +14 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Json.d.ts +54 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Json.js +54 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Lattice.d.ts +15 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Lattice.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Magma.d.ts +58 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Magma.js +83 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Map.d.ts +421 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Map.js +814 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/MeetSemilattice.d.ts +19 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/MeetSemilattice.js +14 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Monad.d.ts +61 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Monad.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/MonadIO.d.ts +43 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/MonadIO.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/MonadTask.d.ts +43 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/MonadTask.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/MonadThrow.d.ts +61 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/MonadThrow.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Monoid.d.ts +268 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Monoid.js +311 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/NaturalTransformation.d.ts +132 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/NaturalTransformation.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/NonEmptyArray.d.ts +855 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/NonEmptyArray.js +1234 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Option.d.ts +1150 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Option.js +1286 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/OptionT.d.ts +551 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/OptionT.js +138 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Ord.d.ts +355 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Ord.js +448 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Ordering.d.ts +84 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Ordering.js +98 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Pointed.d.ts +62 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Pointed.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Predicate.d.ts +68 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Predicate.js +95 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Profunctor.d.ts +49 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Profunctor.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Random.d.ts +36 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Random.js +52 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Reader.d.ts +492 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Reader.js +572 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReaderEither.d.ts +1057 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReaderEither.js +988 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReaderIO.d.ts +499 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReaderIO.js +502 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReaderT.d.ts +298 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReaderT.js +52 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReaderTask.d.ts +787 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReaderTask.js +811 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReaderTaskEither.d.ts +1773 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReaderTaskEither.js +1654 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlyArray.d.ts +1716 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlyArray.js +2253 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlyMap.d.ts +476 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlyMap.js +1041 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlyNonEmptyArray.d.ts +933 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlyNonEmptyArray.js +1316 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlyRecord.d.ts +1385 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlyRecord.js +1470 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlySet.d.ts +258 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlySet.js +485 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlyTuple.d.ts +203 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlyTuple.js +350 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Record.d.ts +1334 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Record.js +1201 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Refinement.d.ts +55 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Refinement.js +107 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Ring.d.ts +53 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Ring.js +81 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Semigroup.d.ts +302 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Semigroup.js +409 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Semigroupoid.d.ts +54 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Semigroupoid.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Semiring.d.ts +18 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Semiring.js +38 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Separated.d.ts +91 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Separated.js +106 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Set.d.ts +231 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Set.js +436 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Show.d.ts +64 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Show.js +121 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/State.d.ts +291 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/State.js +358 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/StateReaderTaskEither.d.ts +1241 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/StateReaderTaskEither.js +1195 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/StateT.d.ts +313 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/StateT.js +81 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Store.d.ts +117 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Store.js +111 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Strong.d.ts +172 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Strong.js +24 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Task.d.ts +500 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Task.js +627 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/TaskEither.d.ts +1437 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/TaskEither.js +1510 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/TaskOption.d.ts +767 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/TaskOption.js +902 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/TaskThese.d.ts +401 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/TaskThese.js +493 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/These.d.ts +468 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/These.js +724 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/TheseT.d.ts +463 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/TheseT.js +131 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Traced.d.ts +85 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Traced.js +102 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Traversable.d.ts +550 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Traversable.js +43 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/TraversableWithIndex.d.ts +191 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/TraversableWithIndex.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Tree.d.ts +393 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Tree.js +525 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Tuple.d.ts +198 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Tuple.js +355 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Unfoldable.d.ts +65 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Unfoldable.js +2 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ValidationT.d.ts +73 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ValidationT.js +47 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Witherable.d.ts +575 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Witherable.js +47 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Writer.d.ts +141 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Writer.js +210 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/WriterT.d.ts +147 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/WriterT.js +62 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Zero.d.ts +83 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Zero.js +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/boolean.d.ts +139 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/boolean.js +167 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/function.d.ts +579 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/function.js +369 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/index.d.ts +718 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/index.js +273 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/internal.d.ts +1 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/internal.js +143 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/number.d.ts +99 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/number.js +130 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/pipeable.d.ts +2275 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/pipeable.js +227 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/string.d.ts +226 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/string.js +283 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/struct.d.ts +42 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/struct.js +89 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/void.d.ts +15 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/void.js +43 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/number/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/package.json +29 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/pipeable/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/string/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/struct/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/void/package.json +6 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/CHANGES +20 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/LICENSE +18 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/README.md +853 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/index.d.ts +167 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/index.js +49 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/package.json +68 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/src/coder/base.js +53 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/src/coder/crockford32.js +114 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/src/coder/hex.js +63 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/src/coder/uuid.js +77 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/src/common/byte-array.js +26 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/src/common/epoch-converter.js +32 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/src/common/exception.js +18 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/src/common/fake-machine.js +26 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/src/common/machine.js +37 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/src/common/random-bytes-browser.js +9 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/src/common/random-bytes.js +17 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/src/factory/id.js +96 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/src/factory/versioned-id.js +72 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/src/id/base.js +39 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/src/id/ulid-monotonic.js +71 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/src/id/ulid.js +64 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/src/id/uuid-1.js +149 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/src/id/uuid-4.js +24 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/src/id/uuid-6.js +146 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/src/id/uuid-nil.js +33 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/src/id/uuid.js +58 -0
- package/dist/layers/baseLayer/nodejs/node_modules/id128/utils.js +35 -0
- package/dist/layers/baseLayer/nodejs/package-lock.json +6702 -0
- package/dist/layers/baseLayer/nodejs/package.json +1 -0
- package/dist/layers/baseLayer.zip +0 -0
- package/dist/package.json +132 -0
- package/{npm → dist/src}/IoTActionRole.js +10 -11
- package/{npm → dist/src}/LambdaLogGroup.js +11 -5
- package/{npm → dist/src}/LambdaSource.js +2 -2
- package/{npm → dist/src}/PackedLambdaFn.js +10 -8
- package/dist/src/checkSumOfFiles.spec.d.ts +1 -0
- package/dist/src/checkSumOfFiles.spec.js +16 -0
- package/dist/src/checksumOfFiles.js +40 -0
- package/{npm → dist/src}/commonParent.js +5 -3
- package/dist/src/commonParent.spec.d.ts +1 -0
- package/dist/src/commonParent.spec.js +20 -0
- package/{npm → dist/src}/findDependencies.js +49 -32
- package/dist/src/findDependencies.spec.d.ts +1 -0
- package/{npm → dist/src}/findDependencies.spec.js +8 -8
- package/dist/src/isTest.js +1 -0
- package/dist/src/isTest.spec.d.ts +1 -0
- package/{npm → dist/src}/isTest.spec.js +4 -4
- package/dist/src/module-folder-named-like-handler-bug.spec.d.ts +1 -0
- package/dist/src/module-folder-named-like-handler-bug.spec.js +19 -0
- package/{npm → dist/src}/packLambda.js +40 -43
- package/dist/src/packLambda.spec.d.ts +1 -0
- package/{npm → dist/src}/packLambda.spec.js +4 -7
- package/{npm → dist/src}/packLambdaFromPath.js +7 -9
- package/{npm → dist/src}/packLayer.js +29 -29
- package/dist/src/packLayer.spec.d.ts +1 -0
- package/{npm → dist/src}/packLayer.spec.js +3 -5
- package/dist/src/test/getFileFromZip.js +25 -0
- package/dist/src/test-data/resolve-paths/foo/1.d.ts +1 -0
- package/dist/src/test-data/resolve-paths/foo/1.js +1 -0
- package/dist/src/test-data/resolve-paths/foo/2.d.ts +1 -0
- package/dist/src/test-data/resolve-paths/foo/2.js +1 -0
- package/dist/src/test-data/resolve-paths/foo/index.d.ts +1 -0
- package/dist/src/test-data/resolve-paths/foo/index.js +1 -0
- package/dist/src/updateImports.js +1 -0
- package/dist/src/updateImports.spec.d.ts +1 -0
- package/{npm → dist/src}/updateImports.spec.js +3 -3
- package/dist/src/updateLambdaCode.js +75 -0
- package/package.json +37 -34
- package/npm/checkSumOfFiles.spec.js +0 -15
- package/npm/checksumOfFiles.js +0 -44
- package/npm/commonParent.spec.js +0 -22
- package/npm/isTest.js +0 -1
- package/npm/module-folder-named-like-handler-bug.spec.js +0 -19
- package/npm/updateImports.js +0 -1
- package/npm/updateLambdaCode.js +0 -75
- /package/{npm/checkSumOfFiles.spec.d.ts → dist/cdk/e2e.d.ts} +0 -0
- /package/{npm/commonParent.spec.d.ts → dist/cdk/update-lambdas.d.ts} +0 -0
- /package/{npm/findDependencies.spec.d.ts → dist/e2e-updated.spec.d.ts} +0 -0
- /package/{npm/isTest.spec.d.ts → dist/e2e.spec.d.ts} +0 -0
- /package/{npm/module-folder-named-like-handler-bug.spec.d.ts → dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Bifunctor.js} +0 -0
- /package/{npm/packLambda.spec.d.ts → dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/BoundedJoinSemilattice.js} +0 -0
- /package/{npm/packLayer.spec.d.ts → dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/BoundedLattice.js} +0 -0
- /package/{npm/updateImports.spec.d.ts → dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/BoundedMeetSemilattice.js} +0 -0
- /package/{npm → dist/src}/IoTActionRole.d.ts +0 -0
- /package/{npm → dist/src}/LambdaLogGroup.d.ts +0 -0
- /package/{npm → dist/src}/LambdaSource.d.ts +0 -0
- /package/{npm → dist/src}/PackedLambdaFn.d.ts +0 -0
- /package/{npm → dist/src}/cdk.d.ts +0 -0
- /package/{npm → dist/src}/cdk.js +0 -0
- /package/{npm → dist/src}/checksumOfFiles.d.ts +0 -0
- /package/{npm → dist/src}/commonParent.d.ts +0 -0
- /package/{npm → dist/src}/findDependencies.d.ts +0 -0
- /package/{npm → dist/src}/isTest.d.ts +0 -0
- /package/{npm → dist/src}/lambda.d.ts +0 -0
- /package/{npm → dist/src}/lambda.js +0 -0
- /package/{npm → dist/src}/layer.d.ts +0 -0
- /package/{npm → dist/src}/layer.js +0 -0
- /package/{npm → dist/src}/packLambda.d.ts +0 -0
- /package/{npm → dist/src}/packLambdaFromPath.d.ts +0 -0
- /package/{npm → dist/src}/packLayer.d.ts +0 -0
- /package/{npm → dist/src}/test/getFileFromZip.d.ts +0 -0
- /package/{npm → dist/src}/updateImports.d.ts +0 -0
- /package/{npm → dist/src}/updateLambdaCode.d.ts +0 -0
- /package/{npm → dist/src}/util.d.ts +0 -0
- /package/{npm → dist/src}/util.js +0 -0
|
@@ -0,0 +1,2517 @@
|
|
|
1
|
+
import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_ } from './Apply';
|
|
2
|
+
import { bind as bind_, chainFirst as chainFirst_ } from './Chain';
|
|
3
|
+
import { fromEitherK as fromEitherK_ } from './FromEither';
|
|
4
|
+
import { dual, identity, pipe } from './function';
|
|
5
|
+
import { bindTo as bindTo_, flap as flap_, let as let__ } from './Functor';
|
|
6
|
+
import * as _ from './internal';
|
|
7
|
+
import * as NEA from './NonEmptyArray';
|
|
8
|
+
import * as RA from './ReadonlyArray';
|
|
9
|
+
import { separated } from './Separated';
|
|
10
|
+
import { filterE as filterE_, wiltDefault, witherDefault } from './Witherable';
|
|
11
|
+
import { guard as guard_ } from './Zero';
|
|
12
|
+
// -------------------------------------------------------------------------------------
|
|
13
|
+
// refinements
|
|
14
|
+
// -------------------------------------------------------------------------------------
|
|
15
|
+
/**
|
|
16
|
+
* Test whether an array is empty
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* import { isEmpty } from 'fp-ts/Array'
|
|
20
|
+
*
|
|
21
|
+
* assert.strictEqual(isEmpty([]), true)
|
|
22
|
+
* assert.strictEqual(isEmpty(['a']), false)
|
|
23
|
+
*
|
|
24
|
+
* @category refinements
|
|
25
|
+
* @since 2.0.0
|
|
26
|
+
*/
|
|
27
|
+
export var isEmpty = function (as) { return as.length === 0; };
|
|
28
|
+
/**
|
|
29
|
+
* Test whether an array is non empty narrowing down the type to `NonEmptyArray<A>`
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* import { isNonEmpty } from 'fp-ts/Array'
|
|
33
|
+
*
|
|
34
|
+
* assert.strictEqual(isNonEmpty([]), false)
|
|
35
|
+
* assert.strictEqual(isNonEmpty(['a']), true)
|
|
36
|
+
*
|
|
37
|
+
* @category refinements
|
|
38
|
+
* @since 2.0.0
|
|
39
|
+
*/
|
|
40
|
+
export var isNonEmpty = NEA.isNonEmpty;
|
|
41
|
+
// -------------------------------------------------------------------------------------
|
|
42
|
+
// constructors
|
|
43
|
+
// -------------------------------------------------------------------------------------
|
|
44
|
+
/**
|
|
45
|
+
* Prepend an element to the front of a `Array`, creating a new `NonEmptyArray`.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* import { prepend } from 'fp-ts/Array'
|
|
49
|
+
* import { pipe } from 'fp-ts/function'
|
|
50
|
+
*
|
|
51
|
+
* assert.deepStrictEqual(pipe([2, 3, 4], prepend(1)), [1, 2, 3, 4])
|
|
52
|
+
*
|
|
53
|
+
* @since 2.10.0
|
|
54
|
+
*/
|
|
55
|
+
export var prepend = NEA.prepend;
|
|
56
|
+
/**
|
|
57
|
+
* Less strict version of [`prepend`](#prepend).
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* import { prependW } from 'fp-ts/Array'
|
|
61
|
+
* import { pipe } from 'fp-ts/function'
|
|
62
|
+
*
|
|
63
|
+
* assert.deepStrictEqual(pipe([2, 3, 4], prependW("a")), ["a", 2, 3, 4]);
|
|
64
|
+
*
|
|
65
|
+
* @since 2.11.0
|
|
66
|
+
*/
|
|
67
|
+
export var prependW = NEA.prependW;
|
|
68
|
+
/**
|
|
69
|
+
* Append an element to the end of a `Array`, creating a new `NonEmptyArray`.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* import { append } from 'fp-ts/Array'
|
|
73
|
+
* import { pipe } from 'fp-ts/function'
|
|
74
|
+
*
|
|
75
|
+
* assert.deepStrictEqual(pipe([1, 2, 3], append(4)), [1, 2, 3, 4])
|
|
76
|
+
*
|
|
77
|
+
* @since 2.10.0
|
|
78
|
+
*/
|
|
79
|
+
export var append = NEA.append;
|
|
80
|
+
/**
|
|
81
|
+
* Less strict version of [`append`](#append).
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* import { appendW } from 'fp-ts/Array'
|
|
85
|
+
* import { pipe } from 'fp-ts/function'
|
|
86
|
+
*
|
|
87
|
+
* assert.deepStrictEqual(pipe([1, 2, 3], appendW("d")), [1, 2, 3, "d"]);
|
|
88
|
+
*
|
|
89
|
+
* @since 2.11.0
|
|
90
|
+
*/
|
|
91
|
+
export var appendW = NEA.appendW;
|
|
92
|
+
/**
|
|
93
|
+
* Return a `Array` of length `n` with element `i` initialized with `f(i)`.
|
|
94
|
+
*
|
|
95
|
+
* **Note**. `n` is normalized to a non negative integer.
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* import { makeBy } from 'fp-ts/Array'
|
|
99
|
+
*
|
|
100
|
+
* const double = (i: number): number => i * 2
|
|
101
|
+
* assert.deepStrictEqual(makeBy(5, double), [0, 2, 4, 6, 8])
|
|
102
|
+
* assert.deepStrictEqual(makeBy(-3, double), [])
|
|
103
|
+
* assert.deepStrictEqual(makeBy(4.32164, double), [0, 2, 4, 6])
|
|
104
|
+
*
|
|
105
|
+
* @category constructors
|
|
106
|
+
* @since 2.0.0
|
|
107
|
+
*/
|
|
108
|
+
export var makeBy = function (n, f) { return (n <= 0 ? [] : NEA.makeBy(f)(n)); };
|
|
109
|
+
/**
|
|
110
|
+
* Create a `Array` containing a value repeated the specified number of times.
|
|
111
|
+
*
|
|
112
|
+
* **Note**. `n` is normalized to a non negative integer.
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* import { replicate } from 'fp-ts/Array'
|
|
116
|
+
*
|
|
117
|
+
* assert.deepStrictEqual(replicate(3, 'a'), ['a', 'a', 'a'])
|
|
118
|
+
* assert.deepStrictEqual(replicate(-3, 'a'), [])
|
|
119
|
+
* assert.deepStrictEqual(replicate(2.985647, 'a'), ['a', 'a'])
|
|
120
|
+
*
|
|
121
|
+
* @category constructors
|
|
122
|
+
* @since 2.0.0
|
|
123
|
+
*/
|
|
124
|
+
export var replicate = function (n, a) { return makeBy(n, function () { return a; }); };
|
|
125
|
+
export function fromPredicate(predicate) {
|
|
126
|
+
return function (a) { return (predicate(a) ? [a] : []); };
|
|
127
|
+
}
|
|
128
|
+
// -------------------------------------------------------------------------------------
|
|
129
|
+
// conversions
|
|
130
|
+
// -------------------------------------------------------------------------------------
|
|
131
|
+
/**
|
|
132
|
+
* Create an array from an `Option`. The resulting array will contain the content of the
|
|
133
|
+
* `Option` if it is `Some` and it will be empty if the `Option` is `None`.
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* import { fromOption } from 'fp-ts/Array'
|
|
137
|
+
* import { option } from "fp-ts";
|
|
138
|
+
* import { pipe } from 'fp-ts/function'
|
|
139
|
+
*
|
|
140
|
+
* assert.deepStrictEqual(pipe(option.some("a"), fromOption),["a"])
|
|
141
|
+
* assert.deepStrictEqual(pipe(option.none, fromOption),[])
|
|
142
|
+
*
|
|
143
|
+
* @category conversions
|
|
144
|
+
* @since 2.11.0
|
|
145
|
+
*/
|
|
146
|
+
export var fromOption = function (ma) { return (_.isNone(ma) ? [] : [ma.value]); };
|
|
147
|
+
/**
|
|
148
|
+
* Create an array from an `Either`. The resulting array will contain the content of the
|
|
149
|
+
* `Either` if it is `Right` and it will be empty if the `Either` is `Left`.
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* import { fromEither } from 'fp-ts/Array'
|
|
153
|
+
* import { either } from "fp-ts";
|
|
154
|
+
* import { pipe } from 'fp-ts/function'
|
|
155
|
+
*
|
|
156
|
+
* assert.deepStrictEqual(pipe(either.right("r"), fromEither), ["r"]);
|
|
157
|
+
* assert.deepStrictEqual(pipe(either.left("l"), fromEither), []);
|
|
158
|
+
*
|
|
159
|
+
* @category conversions
|
|
160
|
+
* @since 2.11.0
|
|
161
|
+
*/
|
|
162
|
+
export var fromEither = function (e) { return (_.isLeft(e) ? [] : [e.right]); };
|
|
163
|
+
/**
|
|
164
|
+
* Less strict version of [`match`](#match).
|
|
165
|
+
*
|
|
166
|
+
* The `W` suffix (short for **W**idening) means that the handler return types will be merged.
|
|
167
|
+
*
|
|
168
|
+
* @example
|
|
169
|
+
* import { matchW } from 'fp-ts/Array'
|
|
170
|
+
* import { pipe } from 'fp-ts/function'
|
|
171
|
+
*
|
|
172
|
+
* const matcherW = matchW(
|
|
173
|
+
* () => "No elements",
|
|
174
|
+
* (as) => as.length
|
|
175
|
+
* );
|
|
176
|
+
* assert.deepStrictEqual(pipe([1, 2, 3, 4], matcherW), 4);
|
|
177
|
+
* assert.deepStrictEqual(pipe([], matcherW), "No elements");
|
|
178
|
+
*
|
|
179
|
+
* @category pattern matching
|
|
180
|
+
* @since 2.11.0
|
|
181
|
+
*/
|
|
182
|
+
export var matchW = function (onEmpty, onNonEmpty) {
|
|
183
|
+
return function (as) {
|
|
184
|
+
return isNonEmpty(as) ? onNonEmpty(as) : onEmpty();
|
|
185
|
+
};
|
|
186
|
+
};
|
|
187
|
+
/**
|
|
188
|
+
* Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise
|
|
189
|
+
* it passes the array to `onNonEmpty` and returns the result.
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* import { match } from 'fp-ts/Array'
|
|
193
|
+
* import { pipe } from 'fp-ts/function'
|
|
194
|
+
*
|
|
195
|
+
* const matcher = match(
|
|
196
|
+
* () => "No elements",
|
|
197
|
+
* (as) => `Found ${as.length} element(s)`
|
|
198
|
+
* );
|
|
199
|
+
* assert.deepStrictEqual(pipe([1, 2, 3, 4], matcher), "Found 4 element(s)");
|
|
200
|
+
* assert.deepStrictEqual(pipe([], matcher), "No elements");
|
|
201
|
+
*
|
|
202
|
+
* @category pattern matching
|
|
203
|
+
* @since 2.11.0
|
|
204
|
+
*/
|
|
205
|
+
export var match = matchW;
|
|
206
|
+
/**
|
|
207
|
+
* Less strict version of [`matchLeft`](#matchleft). It will work when `onEmpty` and
|
|
208
|
+
* `onNonEmpty` have different return types.
|
|
209
|
+
*
|
|
210
|
+
* @example
|
|
211
|
+
* import { matchLeftW } from 'fp-ts/Array'
|
|
212
|
+
*
|
|
213
|
+
* const f = matchLeftW(
|
|
214
|
+
* () => 0,
|
|
215
|
+
* (head: string, tail: string[]) => `Found "${head}" followed by ${tail.length} elements`
|
|
216
|
+
* );
|
|
217
|
+
* assert.strictEqual(f(["a", "b", "c"]), 'Found "a" followed by 2 elements');
|
|
218
|
+
* assert.strictEqual(f([]), 0);
|
|
219
|
+
*
|
|
220
|
+
* @category pattern matching
|
|
221
|
+
* @since 2.11.0
|
|
222
|
+
*/
|
|
223
|
+
export var matchLeftW = function (onEmpty, onNonEmpty) {
|
|
224
|
+
return function (as) {
|
|
225
|
+
return isNonEmpty(as) ? onNonEmpty(NEA.head(as), NEA.tail(as)) : onEmpty();
|
|
226
|
+
};
|
|
227
|
+
};
|
|
228
|
+
/**
|
|
229
|
+
* Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise
|
|
230
|
+
* it passes the array to `onNonEmpty` broken into its first element and remaining elements.
|
|
231
|
+
*
|
|
232
|
+
* @example
|
|
233
|
+
* import { matchLeft } from 'fp-ts/Array'
|
|
234
|
+
*
|
|
235
|
+
* const len: <A>(as: Array<A>) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail))
|
|
236
|
+
* assert.strictEqual(len([1, 2, 3]), 3)
|
|
237
|
+
*
|
|
238
|
+
* @category pattern matching
|
|
239
|
+
* @since 2.10.0
|
|
240
|
+
*/
|
|
241
|
+
export var matchLeft = matchLeftW;
|
|
242
|
+
/**
|
|
243
|
+
* Alias of [`matchLeft`](#matchleft).
|
|
244
|
+
*
|
|
245
|
+
* @category pattern matching
|
|
246
|
+
* @since 2.0.0
|
|
247
|
+
*/
|
|
248
|
+
export var foldLeft = matchLeft;
|
|
249
|
+
/**
|
|
250
|
+
* Less strict version of [`matchRight`](#matchright). It will work when `onEmpty` and
|
|
251
|
+
* `onNonEmpty` have different return types.
|
|
252
|
+
*
|
|
253
|
+
* @example
|
|
254
|
+
* import { matchRightW } from 'fp-ts/Array'
|
|
255
|
+
*
|
|
256
|
+
* const f = matchRightW(
|
|
257
|
+
* () => 0,
|
|
258
|
+
* (head: string[], tail: string) => `Found ${head.length} elements folllowed by "${tail}"`
|
|
259
|
+
* );
|
|
260
|
+
* assert.strictEqual(f(["a", "b", "c"]), 'Found 2 elements folllowed by "c"');
|
|
261
|
+
* assert.strictEqual(f([]), 0);
|
|
262
|
+
*
|
|
263
|
+
* @category pattern matching
|
|
264
|
+
* @since 2.11.0
|
|
265
|
+
*/
|
|
266
|
+
export var matchRightW = function (onEmpty, onNonEmpty) {
|
|
267
|
+
return function (as) {
|
|
268
|
+
return isNonEmpty(as) ? onNonEmpty(NEA.init(as), NEA.last(as)) : onEmpty();
|
|
269
|
+
};
|
|
270
|
+
};
|
|
271
|
+
/**
|
|
272
|
+
* Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise
|
|
273
|
+
* it passes the array to `onNonEmpty` broken into its initial elements and the last element.
|
|
274
|
+
*
|
|
275
|
+
* @example
|
|
276
|
+
* import { matchRight } from 'fp-ts/Array'
|
|
277
|
+
*
|
|
278
|
+
* const len: <A>(as: Array<A>) => number = matchRight(
|
|
279
|
+
* () => 0,
|
|
280
|
+
* (head, _) => 1 + len(head)
|
|
281
|
+
* );
|
|
282
|
+
* assert.strictEqual(len([1, 2, 3]), 3);
|
|
283
|
+
*
|
|
284
|
+
* @category pattern matching
|
|
285
|
+
* @since 2.10.0
|
|
286
|
+
*/
|
|
287
|
+
export var matchRight = matchRightW;
|
|
288
|
+
/**
|
|
289
|
+
* Alias of [`matchRight`](#matchright).
|
|
290
|
+
*
|
|
291
|
+
* @category pattern matching
|
|
292
|
+
* @since 2.0.0
|
|
293
|
+
*/
|
|
294
|
+
export var foldRight = matchRight;
|
|
295
|
+
// -------------------------------------------------------------------------------------
|
|
296
|
+
// combinators
|
|
297
|
+
// -------------------------------------------------------------------------------------
|
|
298
|
+
/**
|
|
299
|
+
* Same as [`chain`](#chain), but passing also the index to the iterating function.
|
|
300
|
+
*
|
|
301
|
+
* @example
|
|
302
|
+
* import { chainWithIndex, replicate } from 'fp-ts/Array'
|
|
303
|
+
* import { pipe } from 'fp-ts/function'
|
|
304
|
+
*
|
|
305
|
+
* const f = (index: number, x: string) => replicate(2, `${x}${index}`);
|
|
306
|
+
* assert.deepStrictEqual(pipe(["a", "b", "c"], chainWithIndex(f)), ["a0", "a0", "b1", "b1", "c2", "c2"]);
|
|
307
|
+
*
|
|
308
|
+
* @category sequencing
|
|
309
|
+
* @since 2.7.0
|
|
310
|
+
*/
|
|
311
|
+
export var chainWithIndex = function (f) {
|
|
312
|
+
return function (as) {
|
|
313
|
+
var out = [];
|
|
314
|
+
for (var i = 0; i < as.length; i++) {
|
|
315
|
+
var bs = f(i, as[i]);
|
|
316
|
+
for (var j = 0; j < bs.length; j++) {
|
|
317
|
+
out.push(bs[j]);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
return out;
|
|
321
|
+
};
|
|
322
|
+
};
|
|
323
|
+
/**
|
|
324
|
+
* Same as `reduce` but it carries over the intermediate steps
|
|
325
|
+
*
|
|
326
|
+
* @example
|
|
327
|
+
* import { scanLeft } from 'fp-ts/Array'
|
|
328
|
+
*
|
|
329
|
+
* assert.deepStrictEqual(scanLeft(10, (b, a: number) => b - a)([1, 2, 3]), [10, 9, 7, 4])
|
|
330
|
+
*
|
|
331
|
+
* @since 2.0.0
|
|
332
|
+
*/
|
|
333
|
+
export var scanLeft = function (b, f) {
|
|
334
|
+
return function (as) {
|
|
335
|
+
var len = as.length;
|
|
336
|
+
var out = new Array(len + 1);
|
|
337
|
+
out[0] = b;
|
|
338
|
+
for (var i = 0; i < len; i++) {
|
|
339
|
+
out[i + 1] = f(out[i], as[i]);
|
|
340
|
+
}
|
|
341
|
+
return out;
|
|
342
|
+
};
|
|
343
|
+
};
|
|
344
|
+
/**
|
|
345
|
+
* Fold an array from the right, keeping all intermediate results instead of only the final result
|
|
346
|
+
*
|
|
347
|
+
* @example
|
|
348
|
+
* import { scanRight } from 'fp-ts/Array'
|
|
349
|
+
*
|
|
350
|
+
* assert.deepStrictEqual(scanRight(10, (a: number, b) => b - a)([1, 2, 3]), [4, 5, 7, 10])
|
|
351
|
+
*
|
|
352
|
+
* @since 2.0.0
|
|
353
|
+
*/
|
|
354
|
+
export var scanRight = function (b, f) {
|
|
355
|
+
return function (as) {
|
|
356
|
+
var len = as.length;
|
|
357
|
+
var out = new Array(len + 1);
|
|
358
|
+
out[len] = b;
|
|
359
|
+
for (var i = len - 1; i >= 0; i--) {
|
|
360
|
+
out[i] = f(as[i], out[i + 1]);
|
|
361
|
+
}
|
|
362
|
+
return out;
|
|
363
|
+
};
|
|
364
|
+
};
|
|
365
|
+
/**
|
|
366
|
+
* Calculate the number of elements in a `Array`.
|
|
367
|
+
*
|
|
368
|
+
* @example
|
|
369
|
+
* import { size } from 'fp-ts/Array'
|
|
370
|
+
*
|
|
371
|
+
* assert.strictEqual(size(["a","b","c"]),3)
|
|
372
|
+
*
|
|
373
|
+
* @since 2.10.0
|
|
374
|
+
*/
|
|
375
|
+
export var size = function (as) { return as.length; };
|
|
376
|
+
/**
|
|
377
|
+
* Test whether an array contains a particular index
|
|
378
|
+
*
|
|
379
|
+
* @example
|
|
380
|
+
* import { isOutOfBound } from 'fp-ts/Array'
|
|
381
|
+
*
|
|
382
|
+
* assert.strictEqual(isOutOfBound(1,["a","b","c"]),false)
|
|
383
|
+
* assert.strictEqual(isOutOfBound(-1,["a","b","c"]),true)
|
|
384
|
+
* assert.strictEqual(isOutOfBound(3,["a","b","c"]),true)
|
|
385
|
+
*
|
|
386
|
+
* @since 2.0.0
|
|
387
|
+
*/
|
|
388
|
+
export var isOutOfBound = NEA.isOutOfBound;
|
|
389
|
+
// TODO: remove non-curried overloading in v3
|
|
390
|
+
/**
|
|
391
|
+
* This function provides a safe way to read a value at a particular index from an array.
|
|
392
|
+
* It returns a `none` if the index is out of bounds, and a `some` of the element if the
|
|
393
|
+
* index is valid.
|
|
394
|
+
*
|
|
395
|
+
* @example
|
|
396
|
+
* import { lookup } from 'fp-ts/Array'
|
|
397
|
+
* import { some, none } from 'fp-ts/Option'
|
|
398
|
+
* import { pipe } from 'fp-ts/function'
|
|
399
|
+
*
|
|
400
|
+
* assert.deepStrictEqual(pipe([1, 2, 3], lookup(1)), some(2))
|
|
401
|
+
* assert.deepStrictEqual(pipe([1, 2, 3], lookup(3)), none)
|
|
402
|
+
*
|
|
403
|
+
* @since 2.0.0
|
|
404
|
+
*/
|
|
405
|
+
export var lookup = RA.lookup;
|
|
406
|
+
/**
|
|
407
|
+
* Get the first element in an array, or `None` if the array is empty
|
|
408
|
+
*
|
|
409
|
+
* @example
|
|
410
|
+
* import { head } from 'fp-ts/Array'
|
|
411
|
+
* import { some, none } from 'fp-ts/Option'
|
|
412
|
+
*
|
|
413
|
+
* assert.deepStrictEqual(head([1, 2, 3]), some(1))
|
|
414
|
+
* assert.deepStrictEqual(head([]), none)
|
|
415
|
+
*
|
|
416
|
+
* @since 2.0.0
|
|
417
|
+
*/
|
|
418
|
+
export var head = RA.head;
|
|
419
|
+
/**
|
|
420
|
+
* Get the last element in an array, or `None` if the array is empty
|
|
421
|
+
*
|
|
422
|
+
* @example
|
|
423
|
+
* import { last } from 'fp-ts/Array'
|
|
424
|
+
* import { some, none } from 'fp-ts/Option'
|
|
425
|
+
*
|
|
426
|
+
* assert.deepStrictEqual(last([1, 2, 3]), some(3))
|
|
427
|
+
* assert.deepStrictEqual(last([]), none)
|
|
428
|
+
*
|
|
429
|
+
* @since 2.0.0
|
|
430
|
+
*/
|
|
431
|
+
export var last = RA.last;
|
|
432
|
+
/**
|
|
433
|
+
* Get all but the first element of an array, creating a new array, or `None` if the array is empty
|
|
434
|
+
*
|
|
435
|
+
* @example
|
|
436
|
+
* import { tail } from 'fp-ts/Array'
|
|
437
|
+
* import { some, none } from 'fp-ts/Option'
|
|
438
|
+
*
|
|
439
|
+
* assert.deepStrictEqual(tail([1, 2, 3]), some([2, 3]))
|
|
440
|
+
* assert.deepStrictEqual(tail([]), none)
|
|
441
|
+
*
|
|
442
|
+
* @since 2.0.0
|
|
443
|
+
*/
|
|
444
|
+
export var tail = function (as) { return (isNonEmpty(as) ? _.some(NEA.tail(as)) : _.none); };
|
|
445
|
+
/**
|
|
446
|
+
* Get all but the last element of an array, creating a new array, or `None` if the array is empty
|
|
447
|
+
*
|
|
448
|
+
* @example
|
|
449
|
+
* import { init } from 'fp-ts/Array'
|
|
450
|
+
* import { some, none } from 'fp-ts/Option'
|
|
451
|
+
*
|
|
452
|
+
* assert.deepStrictEqual(init([1, 2, 3]), some([1, 2]))
|
|
453
|
+
* assert.deepStrictEqual(init([]), none)
|
|
454
|
+
*
|
|
455
|
+
* @since 2.0.0
|
|
456
|
+
*/
|
|
457
|
+
export var init = function (as) { return (isNonEmpty(as) ? _.some(NEA.init(as)) : _.none); };
|
|
458
|
+
/**
|
|
459
|
+
* Keep only a max number of elements from the start of an `Array`, creating a new `Array`.
|
|
460
|
+
*
|
|
461
|
+
* **Note**. `n` is normalized to a non negative integer.
|
|
462
|
+
*
|
|
463
|
+
* @example
|
|
464
|
+
* import { takeLeft } from 'fp-ts/Array'
|
|
465
|
+
*
|
|
466
|
+
* assert.deepStrictEqual(takeLeft(2)([1, 2, 3, 4, 5]), [1, 2]);
|
|
467
|
+
* assert.deepStrictEqual(takeLeft(7)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);
|
|
468
|
+
* assert.deepStrictEqual(takeLeft(0)([1, 2, 3, 4, 5]), []);
|
|
469
|
+
* assert.deepStrictEqual(takeLeft(-1)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);
|
|
470
|
+
*
|
|
471
|
+
* @since 2.0.0
|
|
472
|
+
*/
|
|
473
|
+
export var takeLeft = function (n) {
|
|
474
|
+
return function (as) {
|
|
475
|
+
return isOutOfBound(n, as) ? copy(as) : as.slice(0, n);
|
|
476
|
+
};
|
|
477
|
+
};
|
|
478
|
+
/**
|
|
479
|
+
* Keep only a max number of elements from the end of an `Array`, creating a new `Array`.
|
|
480
|
+
*
|
|
481
|
+
* **Note**. `n` is normalized to a non negative integer.
|
|
482
|
+
*
|
|
483
|
+
* @example
|
|
484
|
+
* import { takeRight } from 'fp-ts/Array'
|
|
485
|
+
*
|
|
486
|
+
* assert.deepStrictEqual(takeRight(2)([1, 2, 3, 4, 5]), [4, 5]);
|
|
487
|
+
* assert.deepStrictEqual(takeRight(7)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);
|
|
488
|
+
* assert.deepStrictEqual(takeRight(0)([1, 2, 3, 4, 5]), []);
|
|
489
|
+
* assert.deepStrictEqual(takeRight(-1)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);
|
|
490
|
+
*
|
|
491
|
+
* @since 2.0.0
|
|
492
|
+
*/
|
|
493
|
+
export var takeRight = function (n) {
|
|
494
|
+
return function (as) {
|
|
495
|
+
return isOutOfBound(n, as) ? copy(as) : n === 0 ? [] : as.slice(-n);
|
|
496
|
+
};
|
|
497
|
+
};
|
|
498
|
+
export function takeLeftWhile(predicate) {
|
|
499
|
+
return function (as) {
|
|
500
|
+
var out = [];
|
|
501
|
+
for (var _i = 0, as_1 = as; _i < as_1.length; _i++) {
|
|
502
|
+
var a = as_1[_i];
|
|
503
|
+
if (!predicate(a)) {
|
|
504
|
+
break;
|
|
505
|
+
}
|
|
506
|
+
out.push(a);
|
|
507
|
+
}
|
|
508
|
+
return out;
|
|
509
|
+
};
|
|
510
|
+
}
|
|
511
|
+
var spanLeftIndex = function (as, predicate) {
|
|
512
|
+
var l = as.length;
|
|
513
|
+
var i = 0;
|
|
514
|
+
for (; i < l; i++) {
|
|
515
|
+
if (!predicate(as[i])) {
|
|
516
|
+
break;
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
return i;
|
|
520
|
+
};
|
|
521
|
+
export function spanLeft(predicate) {
|
|
522
|
+
return function (as) {
|
|
523
|
+
var _a = splitAt(spanLeftIndex(as, predicate))(as), init = _a[0], rest = _a[1];
|
|
524
|
+
return { init: init, rest: rest };
|
|
525
|
+
};
|
|
526
|
+
}
|
|
527
|
+
/**
|
|
528
|
+
* Creates a new `Array` which is a copy of the input dropping a max number of elements from the start.
|
|
529
|
+
*
|
|
530
|
+
* **Note**. `n` is normalized to a non negative integer.
|
|
531
|
+
*
|
|
532
|
+
* @example
|
|
533
|
+
* import { dropLeft } from 'fp-ts/Array'
|
|
534
|
+
*
|
|
535
|
+
* assert.deepStrictEqual(dropLeft(2)([1, 2, 3]), [3]);
|
|
536
|
+
* assert.deepStrictEqual(dropLeft(5)([1, 2, 3]), []);
|
|
537
|
+
* assert.deepStrictEqual(dropLeft(0)([1, 2, 3]), [1, 2, 3]);
|
|
538
|
+
* assert.deepStrictEqual(dropLeft(-2)([1, 2, 3]), [1, 2, 3]);
|
|
539
|
+
*
|
|
540
|
+
* @since 2.0.0
|
|
541
|
+
*/
|
|
542
|
+
export var dropLeft = function (n) {
|
|
543
|
+
return function (as) {
|
|
544
|
+
return n <= 0 || isEmpty(as) ? copy(as) : n >= as.length ? [] : as.slice(n, as.length);
|
|
545
|
+
};
|
|
546
|
+
};
|
|
547
|
+
/**
|
|
548
|
+
* Creates a new `Array` which is a copy of the input dropping a max number of elements from the end.
|
|
549
|
+
*
|
|
550
|
+
* **Note**. `n` is normalized to a non negative integer.
|
|
551
|
+
*
|
|
552
|
+
* @example
|
|
553
|
+
* import { dropRight } from 'fp-ts/Array'
|
|
554
|
+
*
|
|
555
|
+
* assert.deepStrictEqual(dropRight(2)([1, 2, 3]), [1]);
|
|
556
|
+
* assert.deepStrictEqual(dropRight(5)([1, 2, 3]), []);
|
|
557
|
+
* assert.deepStrictEqual(dropRight(0)([1, 2, 3]), [1, 2, 3]);
|
|
558
|
+
* assert.deepStrictEqual(dropRight(-2)([1, 2, 3]), [1, 2, 3]);
|
|
559
|
+
*
|
|
560
|
+
* @since 2.0.0
|
|
561
|
+
*/
|
|
562
|
+
export var dropRight = function (n) {
|
|
563
|
+
return function (as) {
|
|
564
|
+
return n <= 0 || isEmpty(as) ? copy(as) : n >= as.length ? [] : as.slice(0, as.length - n);
|
|
565
|
+
};
|
|
566
|
+
};
|
|
567
|
+
export function dropLeftWhile(predicate) {
|
|
568
|
+
return function (as) { return as.slice(spanLeftIndex(as, predicate)); };
|
|
569
|
+
}
|
|
570
|
+
/**
|
|
571
|
+
* `findIndex` returns an `Option` containing the first index for which a predicate holds.
|
|
572
|
+
* It returns `None` if no element satisfies the predicate.
|
|
573
|
+
* Similar to [`findFirst`](#findFirst) but returning the index instead of the element.
|
|
574
|
+
*
|
|
575
|
+
* @example
|
|
576
|
+
* import { findIndex } from 'fp-ts/Array'
|
|
577
|
+
* import { some, none } from 'fp-ts/Option'
|
|
578
|
+
*
|
|
579
|
+
* assert.deepStrictEqual(findIndex((n: number) => n === 2)([1, 2, 3]), some(1))
|
|
580
|
+
* assert.deepStrictEqual(findIndex((n: number) => n === 2)([]), none)
|
|
581
|
+
*
|
|
582
|
+
* @since 2.0.0
|
|
583
|
+
*/
|
|
584
|
+
export var findIndex = RA.findIndex;
|
|
585
|
+
export function findFirst(predicate) {
|
|
586
|
+
return RA.findFirst(predicate);
|
|
587
|
+
}
|
|
588
|
+
/**
|
|
589
|
+
* Given a selector function which takes an element and returns an option,
|
|
590
|
+
* this function applies the selector to each element of the array and
|
|
591
|
+
* returns the first `Some` result. Otherwise it returns `None`.
|
|
592
|
+
*
|
|
593
|
+
* @example
|
|
594
|
+
* import { findFirstMap } from 'fp-ts/Array'
|
|
595
|
+
* import { some, none } from 'fp-ts/Option'
|
|
596
|
+
*
|
|
597
|
+
* interface Person {
|
|
598
|
+
* readonly name: string;
|
|
599
|
+
* readonly age: number;
|
|
600
|
+
* }
|
|
601
|
+
*
|
|
602
|
+
* const persons: Array<Person> = [
|
|
603
|
+
* { name: "John", age: 16 },
|
|
604
|
+
* { name: "Mary", age: 45 },
|
|
605
|
+
* { name: "Joey", age: 28 },
|
|
606
|
+
* ];
|
|
607
|
+
*
|
|
608
|
+
* const nameOfPersonAbove18 = (p: Person) => (p.age <= 18 ? none : some(p.name));
|
|
609
|
+
* const nameOfPersonAbove70 = (p: Person) => (p.age <= 70 ? none : some(p.name));
|
|
610
|
+
* assert.deepStrictEqual(findFirstMap(nameOfPersonAbove18)(persons), some("Mary"));
|
|
611
|
+
* assert.deepStrictEqual(findFirstMap(nameOfPersonAbove70)(persons), none);
|
|
612
|
+
*
|
|
613
|
+
* @since 2.0.0
|
|
614
|
+
*/
|
|
615
|
+
export var findFirstMap = RA.findFirstMap;
|
|
616
|
+
export function findLast(predicate) {
|
|
617
|
+
return RA.findLast(predicate);
|
|
618
|
+
}
|
|
619
|
+
/**
|
|
620
|
+
* Given a selector function which takes an element and returns an option,
|
|
621
|
+
* this function applies the selector to each element of the array starting from the
|
|
622
|
+
* end and returns the last `Some` result. Otherwise it returns `None`.
|
|
623
|
+
*
|
|
624
|
+
* @example
|
|
625
|
+
* import { findLastMap } from 'fp-ts/Array'
|
|
626
|
+
* import { some, none } from 'fp-ts/Option'
|
|
627
|
+
*
|
|
628
|
+
* interface Person {
|
|
629
|
+
* readonly name: string;
|
|
630
|
+
* readonly age: number;
|
|
631
|
+
* }
|
|
632
|
+
*
|
|
633
|
+
* const persons: Array<Person> = [
|
|
634
|
+
* { name: "John", age: 16 },
|
|
635
|
+
* { name: "Mary", age: 45 },
|
|
636
|
+
* { name: "Joey", age: 28 },
|
|
637
|
+
* ];
|
|
638
|
+
*
|
|
639
|
+
* const nameOfPersonAbove18 = (p: Person) => (p.age <= 18 ? none : some(p.name));
|
|
640
|
+
* const nameOfPersonAbove70 = (p: Person) => (p.age <= 70 ? none : some(p.name));
|
|
641
|
+
* assert.deepStrictEqual(findLastMap(nameOfPersonAbove18)(persons), some("Joey"));
|
|
642
|
+
* assert.deepStrictEqual(findLastMap(nameOfPersonAbove70)(persons), none);
|
|
643
|
+
*
|
|
644
|
+
* @since 2.0.0
|
|
645
|
+
*/
|
|
646
|
+
export var findLastMap = RA.findLastMap;
|
|
647
|
+
/**
|
|
648
|
+
* Returns the index of the last element of the list which matches the predicate.
|
|
649
|
+
* It returns an `Option` containing the index or `None` if not found.
|
|
650
|
+
*
|
|
651
|
+
* @example
|
|
652
|
+
* import { findLastIndex } from 'fp-ts/Array'
|
|
653
|
+
* import { some, none } from 'fp-ts/Option'
|
|
654
|
+
*
|
|
655
|
+
* interface X {
|
|
656
|
+
* readonly a: number
|
|
657
|
+
* readonly b: number
|
|
658
|
+
* }
|
|
659
|
+
* const xs: Array<X> = [{ a: 1, b: 0 }, { a: 1, b: 1 }]
|
|
660
|
+
* assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 1)(xs), some(1))
|
|
661
|
+
* assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 4)(xs), none)
|
|
662
|
+
*
|
|
663
|
+
* @since 2.0.0
|
|
664
|
+
*/
|
|
665
|
+
export var findLastIndex = RA.findLastIndex;
|
|
666
|
+
/**
|
|
667
|
+
* This function takes an array and makes a new array containing the same elements.
|
|
668
|
+
*
|
|
669
|
+
* @since 2.0.0
|
|
670
|
+
*/
|
|
671
|
+
export var copy = function (as) { return as.slice(); };
|
|
672
|
+
/**
|
|
673
|
+
* Insert an element at the specified index, creating a new array,
|
|
674
|
+
* or returning `None` if the index is out of bounds.
|
|
675
|
+
*
|
|
676
|
+
* @example
|
|
677
|
+
* import { insertAt } from 'fp-ts/Array'
|
|
678
|
+
* import { some } from 'fp-ts/Option'
|
|
679
|
+
*
|
|
680
|
+
* assert.deepStrictEqual(insertAt(2, 5)([1, 2, 3, 4]), some([1, 2, 5, 3, 4]))
|
|
681
|
+
*
|
|
682
|
+
* @since 2.0.0
|
|
683
|
+
*/
|
|
684
|
+
export var insertAt = function (i, a) {
|
|
685
|
+
return function (as) {
|
|
686
|
+
return i < 0 || i > as.length ? _.none : _.some(unsafeInsertAt(i, a, as));
|
|
687
|
+
};
|
|
688
|
+
};
|
|
689
|
+
/**
|
|
690
|
+
* Change the element at the specified index, creating a new array,
|
|
691
|
+
* or returning `None` if the index is out of bounds.
|
|
692
|
+
*
|
|
693
|
+
* @example
|
|
694
|
+
* import { updateAt } from 'fp-ts/Array'
|
|
695
|
+
* import { some, none } from 'fp-ts/Option'
|
|
696
|
+
*
|
|
697
|
+
* assert.deepStrictEqual(updateAt(1, 1)([1, 2, 3]), some([1, 1, 3]))
|
|
698
|
+
* assert.deepStrictEqual(updateAt(1, 1)([]), none)
|
|
699
|
+
*
|
|
700
|
+
* @since 2.0.0
|
|
701
|
+
*/
|
|
702
|
+
export var updateAt = function (i, a) { return modifyAt(i, function () { return a; }); };
|
|
703
|
+
/**
|
|
704
|
+
* Delete the element at the specified index, creating a new array, or returning `None` if the index is out of bounds.
|
|
705
|
+
*
|
|
706
|
+
* @example
|
|
707
|
+
* import { deleteAt } from 'fp-ts/Array'
|
|
708
|
+
* import { some, none } from 'fp-ts/Option'
|
|
709
|
+
*
|
|
710
|
+
* assert.deepStrictEqual(deleteAt(0)([1, 2, 3]), some([2, 3]))
|
|
711
|
+
* assert.deepStrictEqual(deleteAt(1)([]), none)
|
|
712
|
+
*
|
|
713
|
+
* @since 2.0.0
|
|
714
|
+
*/
|
|
715
|
+
export var deleteAt = function (i) {
|
|
716
|
+
return function (as) {
|
|
717
|
+
return isOutOfBound(i, as) ? _.none : _.some(unsafeDeleteAt(i, as));
|
|
718
|
+
};
|
|
719
|
+
};
|
|
720
|
+
/**
|
|
721
|
+
* Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out
|
|
722
|
+
* of bounds.
|
|
723
|
+
*
|
|
724
|
+
* @example
|
|
725
|
+
* import { modifyAt } from 'fp-ts/Array'
|
|
726
|
+
* import { some, none } from 'fp-ts/Option'
|
|
727
|
+
*
|
|
728
|
+
* const double = (x: number): number => x * 2
|
|
729
|
+
* assert.deepStrictEqual(modifyAt(1, double)([1, 2, 3]), some([1, 4, 3]))
|
|
730
|
+
* assert.deepStrictEqual(modifyAt(1, double)([]), none)
|
|
731
|
+
*
|
|
732
|
+
* @since 2.0.0
|
|
733
|
+
*/
|
|
734
|
+
export var modifyAt = function (i, f) {
|
|
735
|
+
return function (as) {
|
|
736
|
+
return isOutOfBound(i, as) ? _.none : _.some(unsafeUpdateAt(i, f(as[i]), as));
|
|
737
|
+
};
|
|
738
|
+
};
|
|
739
|
+
/**
|
|
740
|
+
* Reverse an array, creating a new array
|
|
741
|
+
*
|
|
742
|
+
* @example
|
|
743
|
+
* import { reverse } from 'fp-ts/Array'
|
|
744
|
+
*
|
|
745
|
+
* assert.deepStrictEqual(reverse([1, 2, 3]), [3, 2, 1])
|
|
746
|
+
*
|
|
747
|
+
* @since 2.0.0
|
|
748
|
+
*/
|
|
749
|
+
export var reverse = function (as) { return (isEmpty(as) ? [] : as.slice().reverse()); };
|
|
750
|
+
/**
|
|
751
|
+
* Takes an `Array` of `Either` and produces a new `Array` containing
|
|
752
|
+
* the values of all the `Right` elements in the same order.
|
|
753
|
+
*
|
|
754
|
+
* @example
|
|
755
|
+
* import { rights } from 'fp-ts/Array'
|
|
756
|
+
* import { right, left } from 'fp-ts/Either'
|
|
757
|
+
*
|
|
758
|
+
* assert.deepStrictEqual(rights([right(1), left('foo'), right(2)]), [1, 2])
|
|
759
|
+
*
|
|
760
|
+
* @since 2.0.0
|
|
761
|
+
*/
|
|
762
|
+
export var rights = function (as) {
|
|
763
|
+
var r = [];
|
|
764
|
+
for (var i = 0; i < as.length; i++) {
|
|
765
|
+
var a = as[i];
|
|
766
|
+
if (a._tag === 'Right') {
|
|
767
|
+
r.push(a.right);
|
|
768
|
+
}
|
|
769
|
+
}
|
|
770
|
+
return r;
|
|
771
|
+
};
|
|
772
|
+
/**
|
|
773
|
+
* Takes an `Array` of `Either` and produces a new `Array` containing
|
|
774
|
+
* the values of all the `Left` elements in the same order.
|
|
775
|
+
*
|
|
776
|
+
* @example
|
|
777
|
+
* import { lefts } from 'fp-ts/Array'
|
|
778
|
+
* import { left, right } from 'fp-ts/Either'
|
|
779
|
+
*
|
|
780
|
+
* assert.deepStrictEqual(lefts([right(1), left('foo'), right(2)]), ['foo'])
|
|
781
|
+
*
|
|
782
|
+
* @since 2.0.0
|
|
783
|
+
*/
|
|
784
|
+
export var lefts = function (as) {
|
|
785
|
+
var r = [];
|
|
786
|
+
for (var i = 0; i < as.length; i++) {
|
|
787
|
+
var a = as[i];
|
|
788
|
+
if (a._tag === 'Left') {
|
|
789
|
+
r.push(a.left);
|
|
790
|
+
}
|
|
791
|
+
}
|
|
792
|
+
return r;
|
|
793
|
+
};
|
|
794
|
+
/**
|
|
795
|
+
* Sort the elements of an array in increasing order, creating a new array
|
|
796
|
+
*
|
|
797
|
+
* @example
|
|
798
|
+
* import { sort } from 'fp-ts/Array'
|
|
799
|
+
* import * as N from 'fp-ts/number'
|
|
800
|
+
*
|
|
801
|
+
* assert.deepStrictEqual(sort(N.Ord)([3, 2, 1]), [1, 2, 3])
|
|
802
|
+
*
|
|
803
|
+
* @since 2.0.0
|
|
804
|
+
*/
|
|
805
|
+
export var sort = function (O) {
|
|
806
|
+
return function (as) {
|
|
807
|
+
return as.length <= 1 ? copy(as) : as.slice().sort(O.compare);
|
|
808
|
+
};
|
|
809
|
+
};
|
|
810
|
+
/**
|
|
811
|
+
* Apply a function to pairs of elements at the same index in two arrays, collecting the results in a new array. If one
|
|
812
|
+
* input array is short, excess elements of the longer array are discarded.
|
|
813
|
+
*
|
|
814
|
+
* @example
|
|
815
|
+
* import { zipWith } from 'fp-ts/Array'
|
|
816
|
+
*
|
|
817
|
+
* assert.deepStrictEqual(zipWith([1, 2, 3], ['a', 'b', 'c', 'd'], (n, s) => s + n), ['a1', 'b2', 'c3'])
|
|
818
|
+
*
|
|
819
|
+
* @since 2.0.0
|
|
820
|
+
*/
|
|
821
|
+
export var zipWith = function (fa, fb, f) {
|
|
822
|
+
var fc = [];
|
|
823
|
+
var len = Math.min(fa.length, fb.length);
|
|
824
|
+
for (var i = 0; i < len; i++) {
|
|
825
|
+
fc[i] = f(fa[i], fb[i]);
|
|
826
|
+
}
|
|
827
|
+
return fc;
|
|
828
|
+
};
|
|
829
|
+
export function zip(as, bs) {
|
|
830
|
+
if (bs === undefined) {
|
|
831
|
+
return function (bs) { return zip(bs, as); };
|
|
832
|
+
}
|
|
833
|
+
return zipWith(as, bs, function (a, b) { return [a, b]; });
|
|
834
|
+
}
|
|
835
|
+
/**
|
|
836
|
+
* The function is reverse of `zip`. Takes an array of pairs and return two corresponding arrays
|
|
837
|
+
*
|
|
838
|
+
* @example
|
|
839
|
+
* import { unzip } from 'fp-ts/Array'
|
|
840
|
+
*
|
|
841
|
+
* assert.deepStrictEqual(unzip([[1, 'a'], [2, 'b'], [3, 'c']]), [[1, 2, 3], ['a', 'b', 'c']])
|
|
842
|
+
*
|
|
843
|
+
* @since 2.0.0
|
|
844
|
+
*/
|
|
845
|
+
export var unzip = function (as) {
|
|
846
|
+
var fa = [];
|
|
847
|
+
var fb = [];
|
|
848
|
+
for (var i = 0; i < as.length; i++) {
|
|
849
|
+
fa[i] = as[i][0];
|
|
850
|
+
fb[i] = as[i][1];
|
|
851
|
+
}
|
|
852
|
+
return [fa, fb];
|
|
853
|
+
};
|
|
854
|
+
/**
|
|
855
|
+
* Creates a new `Array`, prepending an element to every member of the input `Array`.
|
|
856
|
+
*
|
|
857
|
+
* @example
|
|
858
|
+
* import { prependAll } from 'fp-ts/Array'
|
|
859
|
+
*
|
|
860
|
+
* assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])
|
|
861
|
+
*
|
|
862
|
+
* @since 2.10.0
|
|
863
|
+
*/
|
|
864
|
+
export var prependAll = function (middle) {
|
|
865
|
+
var f = NEA.prependAll(middle);
|
|
866
|
+
return function (as) { return (isNonEmpty(as) ? f(as) : []); };
|
|
867
|
+
};
|
|
868
|
+
/**
|
|
869
|
+
* Creates a new `Array` placing an element in between members of the input `Array`.
|
|
870
|
+
*
|
|
871
|
+
* @example
|
|
872
|
+
* import { intersperse } from 'fp-ts/Array'
|
|
873
|
+
*
|
|
874
|
+
* assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])
|
|
875
|
+
*
|
|
876
|
+
* @since 2.9.0
|
|
877
|
+
*/
|
|
878
|
+
export var intersperse = function (middle) {
|
|
879
|
+
var f = NEA.intersperse(middle);
|
|
880
|
+
return function (as) { return (isNonEmpty(as) ? f(as) : copy(as)); };
|
|
881
|
+
};
|
|
882
|
+
/**
|
|
883
|
+
* Creates a new `Array` rotating the input `Array` by `n` steps.
|
|
884
|
+
*
|
|
885
|
+
* @example
|
|
886
|
+
* import { rotate } from 'fp-ts/Array'
|
|
887
|
+
*
|
|
888
|
+
* assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])
|
|
889
|
+
*
|
|
890
|
+
* @since 2.0.0
|
|
891
|
+
*/
|
|
892
|
+
export var rotate = function (n) {
|
|
893
|
+
var f = NEA.rotate(n);
|
|
894
|
+
return function (as) { return (isNonEmpty(as) ? f(as) : copy(as)); };
|
|
895
|
+
};
|
|
896
|
+
// TODO: remove non-curried overloading in v3
|
|
897
|
+
/**
|
|
898
|
+
* Test if a value is a member of an `Array`. Takes a `Eq<A>` as a single
|
|
899
|
+
* argument which returns the function to use to search for a value of type `A` in
|
|
900
|
+
* an `Array<A>`.
|
|
901
|
+
*
|
|
902
|
+
* @example
|
|
903
|
+
* import { elem } from 'fp-ts/Array'
|
|
904
|
+
* import * as N from 'fp-ts/number'
|
|
905
|
+
* import { pipe } from 'fp-ts/function'
|
|
906
|
+
*
|
|
907
|
+
* assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(2)), true)
|
|
908
|
+
* assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(0)), false)
|
|
909
|
+
*
|
|
910
|
+
* @since 2.0.0
|
|
911
|
+
*/
|
|
912
|
+
export var elem = RA.elem;
|
|
913
|
+
/**
|
|
914
|
+
* Creates a new `Array` removing duplicate elements, keeping the first occurrence of an element,
|
|
915
|
+
* based on a `Eq<A>`.
|
|
916
|
+
*
|
|
917
|
+
* @example
|
|
918
|
+
* import { uniq } from 'fp-ts/Array'
|
|
919
|
+
* import * as N from 'fp-ts/number'
|
|
920
|
+
*
|
|
921
|
+
* assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])
|
|
922
|
+
*
|
|
923
|
+
* @since 2.0.0
|
|
924
|
+
*/
|
|
925
|
+
export var uniq = function (E) {
|
|
926
|
+
var f = NEA.uniq(E);
|
|
927
|
+
return function (as) { return (isNonEmpty(as) ? f(as) : copy(as)); };
|
|
928
|
+
};
|
|
929
|
+
/**
|
|
930
|
+
* Sort the elements of an array in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`,
|
|
931
|
+
* etc...
|
|
932
|
+
*
|
|
933
|
+
* @example
|
|
934
|
+
* import { sortBy } from 'fp-ts/Array'
|
|
935
|
+
* import { contramap } from 'fp-ts/Ord'
|
|
936
|
+
* import * as S from 'fp-ts/string'
|
|
937
|
+
* import * as N from 'fp-ts/number'
|
|
938
|
+
* import { pipe } from 'fp-ts/function'
|
|
939
|
+
*
|
|
940
|
+
* interface Person {
|
|
941
|
+
* readonly name: string
|
|
942
|
+
* readonly age: number
|
|
943
|
+
* }
|
|
944
|
+
* const byName = pipe(S.Ord, contramap((p: Person) => p.name))
|
|
945
|
+
* const byAge = pipe(N.Ord, contramap((p: Person) => p.age))
|
|
946
|
+
*
|
|
947
|
+
* const sortByNameByAge = sortBy([byName, byAge])
|
|
948
|
+
*
|
|
949
|
+
* const persons = [{ name: 'a', age: 1 }, { name: 'b', age: 3 }, { name: 'c', age: 2 }, { name: 'b', age: 2 }]
|
|
950
|
+
* assert.deepStrictEqual(sortByNameByAge(persons), [
|
|
951
|
+
* { name: 'a', age: 1 },
|
|
952
|
+
* { name: 'b', age: 2 },
|
|
953
|
+
* { name: 'b', age: 3 },
|
|
954
|
+
* { name: 'c', age: 2 }
|
|
955
|
+
* ])
|
|
956
|
+
*
|
|
957
|
+
* @since 2.0.0
|
|
958
|
+
*/
|
|
959
|
+
export var sortBy = function (ords) {
|
|
960
|
+
var f = NEA.sortBy(ords);
|
|
961
|
+
return function (as) { return (isNonEmpty(as) ? f(as) : copy(as)); };
|
|
962
|
+
};
|
|
963
|
+
/**
|
|
964
|
+
* A useful recursion pattern for processing an array to produce a new array, often used for "chopping" up the input
|
|
965
|
+
* array. Typically chop is called with some function that will consume an initial prefix of the array and produce a
|
|
966
|
+
* value and the rest of the array.
|
|
967
|
+
*
|
|
968
|
+
* @example
|
|
969
|
+
* import { Eq } from 'fp-ts/Eq'
|
|
970
|
+
* import * as A from 'fp-ts/Array'
|
|
971
|
+
* import * as N from 'fp-ts/number'
|
|
972
|
+
* import { pipe } from 'fp-ts/function'
|
|
973
|
+
*
|
|
974
|
+
* const group = <A>(S: Eq<A>): ((as: Array<A>) => Array<Array<A>>) => {
|
|
975
|
+
* return A.chop(as => {
|
|
976
|
+
* const { init, rest } = pipe(as, A.spanLeft((a: A) => S.equals(a, as[0])))
|
|
977
|
+
* return [init, rest]
|
|
978
|
+
* })
|
|
979
|
+
* }
|
|
980
|
+
* assert.deepStrictEqual(group(N.Eq)([1, 1, 2, 3, 3, 4]), [[1, 1], [2], [3, 3], [4]])
|
|
981
|
+
*
|
|
982
|
+
* @since 2.0.0
|
|
983
|
+
*/
|
|
984
|
+
export var chop = function (f) {
|
|
985
|
+
var g = NEA.chop(f);
|
|
986
|
+
return function (as) { return (isNonEmpty(as) ? g(as) : []); };
|
|
987
|
+
};
|
|
988
|
+
/**
|
|
989
|
+
* Splits an `Array` into two pieces, the first piece has max `n` elements.
|
|
990
|
+
*
|
|
991
|
+
* @example
|
|
992
|
+
* import { splitAt } from 'fp-ts/Array'
|
|
993
|
+
*
|
|
994
|
+
* assert.deepStrictEqual(splitAt(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4, 5]])
|
|
995
|
+
*
|
|
996
|
+
* @since 2.0.0
|
|
997
|
+
*/
|
|
998
|
+
export var splitAt = function (n) {
|
|
999
|
+
return function (as) {
|
|
1000
|
+
return n >= 1 && isNonEmpty(as) ? NEA.splitAt(n)(as) : isEmpty(as) ? [copy(as), []] : [[], copy(as)];
|
|
1001
|
+
};
|
|
1002
|
+
};
|
|
1003
|
+
/**
|
|
1004
|
+
* Splits an array into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of
|
|
1005
|
+
* the array. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive
|
|
1006
|
+
* definition of `chunksOf`; it satisfies the property that
|
|
1007
|
+
*
|
|
1008
|
+
* ```ts
|
|
1009
|
+
* chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys)))
|
|
1010
|
+
* ```
|
|
1011
|
+
*
|
|
1012
|
+
* whenever `n` evenly divides the length of `xs`.
|
|
1013
|
+
*
|
|
1014
|
+
* @example
|
|
1015
|
+
* import { chunksOf } from 'fp-ts/Array'
|
|
1016
|
+
*
|
|
1017
|
+
* assert.deepStrictEqual(chunksOf(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4], [5]])
|
|
1018
|
+
*
|
|
1019
|
+
* @since 2.0.0
|
|
1020
|
+
*/
|
|
1021
|
+
export var chunksOf = function (n) {
|
|
1022
|
+
var f = NEA.chunksOf(n);
|
|
1023
|
+
return function (as) { return (isNonEmpty(as) ? f(as) : []); };
|
|
1024
|
+
};
|
|
1025
|
+
/**
|
|
1026
|
+
* @category lifting
|
|
1027
|
+
* @since 2.11.0
|
|
1028
|
+
*/
|
|
1029
|
+
export var fromOptionK = function (f) {
|
|
1030
|
+
return function () {
|
|
1031
|
+
var a = [];
|
|
1032
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
1033
|
+
a[_i] = arguments[_i];
|
|
1034
|
+
}
|
|
1035
|
+
return fromOption(f.apply(void 0, a));
|
|
1036
|
+
};
|
|
1037
|
+
};
|
|
1038
|
+
export function comprehension(input, f, g) {
|
|
1039
|
+
if (g === void 0) { g = function () { return true; }; }
|
|
1040
|
+
var go = function (scope, input) {
|
|
1041
|
+
return isNonEmpty(input)
|
|
1042
|
+
? flatMap(NEA.head(input), function (a) { return go(pipe(scope, append(a)), NEA.tail(input)); })
|
|
1043
|
+
: g.apply(void 0, scope) ? [f.apply(void 0, scope)]
|
|
1044
|
+
: [];
|
|
1045
|
+
};
|
|
1046
|
+
return go([], input);
|
|
1047
|
+
}
|
|
1048
|
+
/**
|
|
1049
|
+
* @since 2.11.0
|
|
1050
|
+
*/
|
|
1051
|
+
export var concatW = function (second) {
|
|
1052
|
+
return function (first) {
|
|
1053
|
+
return isEmpty(first) ? copy(second) : isEmpty(second) ? copy(first) : first.concat(second);
|
|
1054
|
+
};
|
|
1055
|
+
};
|
|
1056
|
+
/**
|
|
1057
|
+
* @since 2.11.0
|
|
1058
|
+
*/
|
|
1059
|
+
export var concat = concatW;
|
|
1060
|
+
export function union(E) {
|
|
1061
|
+
var unionE = NEA.union(E);
|
|
1062
|
+
return function (first, second) {
|
|
1063
|
+
if (second === undefined) {
|
|
1064
|
+
var unionE_1 = union(E);
|
|
1065
|
+
return function (second) { return unionE_1(second, first); };
|
|
1066
|
+
}
|
|
1067
|
+
return isNonEmpty(first) && isNonEmpty(second)
|
|
1068
|
+
? unionE(second)(first)
|
|
1069
|
+
: isNonEmpty(first)
|
|
1070
|
+
? copy(first)
|
|
1071
|
+
: copy(second);
|
|
1072
|
+
};
|
|
1073
|
+
}
|
|
1074
|
+
export function intersection(E) {
|
|
1075
|
+
var elemE = elem(E);
|
|
1076
|
+
return function (xs, ys) {
|
|
1077
|
+
if (ys === undefined) {
|
|
1078
|
+
var intersectionE_1 = intersection(E);
|
|
1079
|
+
return function (ys) { return intersectionE_1(ys, xs); };
|
|
1080
|
+
}
|
|
1081
|
+
return xs.filter(function (a) { return elemE(a, ys); });
|
|
1082
|
+
};
|
|
1083
|
+
}
|
|
1084
|
+
export function difference(E) {
|
|
1085
|
+
var elemE = elem(E);
|
|
1086
|
+
return function (xs, ys) {
|
|
1087
|
+
if (ys === undefined) {
|
|
1088
|
+
var differenceE_1 = difference(E);
|
|
1089
|
+
return function (ys) { return differenceE_1(ys, xs); };
|
|
1090
|
+
}
|
|
1091
|
+
return xs.filter(function (a) { return !elemE(a, ys); });
|
|
1092
|
+
};
|
|
1093
|
+
}
|
|
1094
|
+
var _map = function (fa, f) { return pipe(fa, map(f)); };
|
|
1095
|
+
/* istanbul ignore next */
|
|
1096
|
+
var _mapWithIndex = function (fa, f) { return pipe(fa, mapWithIndex(f)); };
|
|
1097
|
+
var _ap = function (fab, fa) { return pipe(fab, ap(fa)); };
|
|
1098
|
+
/* istanbul ignore next */
|
|
1099
|
+
var _filter = function (fa, predicate) { return pipe(fa, filter(predicate)); };
|
|
1100
|
+
/* istanbul ignore next */
|
|
1101
|
+
var _filterMap = function (fa, f) { return pipe(fa, filterMap(f)); };
|
|
1102
|
+
/* istanbul ignore next */
|
|
1103
|
+
var _partition = function (fa, predicate) {
|
|
1104
|
+
return pipe(fa, partition(predicate));
|
|
1105
|
+
};
|
|
1106
|
+
/* istanbul ignore next */
|
|
1107
|
+
var _partitionMap = function (fa, f) { return pipe(fa, partitionMap(f)); };
|
|
1108
|
+
/* istanbul ignore next */
|
|
1109
|
+
var _partitionWithIndex = function (fa, predicateWithIndex) { return pipe(fa, partitionWithIndex(predicateWithIndex)); };
|
|
1110
|
+
/* istanbul ignore next */
|
|
1111
|
+
var _partitionMapWithIndex = function (fa, f) { return pipe(fa, partitionMapWithIndex(f)); };
|
|
1112
|
+
/* istanbul ignore next */
|
|
1113
|
+
var _alt = function (fa, that) { return pipe(fa, alt(that)); };
|
|
1114
|
+
var _reduce = function (fa, b, f) { return pipe(fa, reduce(b, f)); };
|
|
1115
|
+
/* istanbul ignore next */
|
|
1116
|
+
var _foldMap = function (M) {
|
|
1117
|
+
var foldMapM = foldMap(M);
|
|
1118
|
+
return function (fa, f) { return pipe(fa, foldMapM(f)); };
|
|
1119
|
+
};
|
|
1120
|
+
/* istanbul ignore next */
|
|
1121
|
+
var _reduceRight = function (fa, b, f) { return pipe(fa, reduceRight(b, f)); };
|
|
1122
|
+
/* istanbul ignore next */
|
|
1123
|
+
var _reduceWithIndex = function (fa, b, f) {
|
|
1124
|
+
return pipe(fa, reduceWithIndex(b, f));
|
|
1125
|
+
};
|
|
1126
|
+
/* istanbul ignore next */
|
|
1127
|
+
var _foldMapWithIndex = function (M) {
|
|
1128
|
+
var foldMapWithIndexM = foldMapWithIndex(M);
|
|
1129
|
+
return function (fa, f) { return pipe(fa, foldMapWithIndexM(f)); };
|
|
1130
|
+
};
|
|
1131
|
+
/* istanbul ignore next */
|
|
1132
|
+
var _reduceRightWithIndex = function (fa, b, f) {
|
|
1133
|
+
return pipe(fa, reduceRightWithIndex(b, f));
|
|
1134
|
+
};
|
|
1135
|
+
/* istanbul ignore next */
|
|
1136
|
+
var _filterMapWithIndex = function (fa, f) { return pipe(fa, filterMapWithIndex(f)); };
|
|
1137
|
+
/* istanbul ignore next */
|
|
1138
|
+
var _filterWithIndex = function (fa, predicateWithIndex) { return pipe(fa, filterWithIndex(predicateWithIndex)); };
|
|
1139
|
+
/* istanbul ignore next */
|
|
1140
|
+
var _extend = function (fa, f) { return pipe(fa, extend(f)); };
|
|
1141
|
+
/* istanbul ignore next */
|
|
1142
|
+
var _traverse = function (F) {
|
|
1143
|
+
var traverseF = traverse(F);
|
|
1144
|
+
return function (ta, f) { return pipe(ta, traverseF(f)); };
|
|
1145
|
+
};
|
|
1146
|
+
/* istanbul ignore next */
|
|
1147
|
+
var _traverseWithIndex = function (F) {
|
|
1148
|
+
var traverseWithIndexF = traverseWithIndex(F);
|
|
1149
|
+
return function (ta, f) { return pipe(ta, traverseWithIndexF(f)); };
|
|
1150
|
+
};
|
|
1151
|
+
var _chainRecDepthFirst = RA._chainRecDepthFirst;
|
|
1152
|
+
var _chainRecBreadthFirst = RA._chainRecBreadthFirst;
|
|
1153
|
+
/**
|
|
1154
|
+
* Given an element of the base type, `of` builds an `Array` containing just that
|
|
1155
|
+
* element of the base type (this is useful for building a `Monad`).
|
|
1156
|
+
*
|
|
1157
|
+
* @example
|
|
1158
|
+
* import { of } from 'fp-ts/Array'
|
|
1159
|
+
*
|
|
1160
|
+
* assert.deepStrictEqual(of("a"), ["a"]);
|
|
1161
|
+
*
|
|
1162
|
+
* @category constructors
|
|
1163
|
+
* @since 2.0.0
|
|
1164
|
+
*/
|
|
1165
|
+
export var of = NEA.of;
|
|
1166
|
+
/**
|
|
1167
|
+
* Makes an empty `Array`, useful for building a [`Monoid`](#Monoid)
|
|
1168
|
+
*
|
|
1169
|
+
* @since 2.7.0
|
|
1170
|
+
*/
|
|
1171
|
+
export var zero = function () { return []; };
|
|
1172
|
+
/**
|
|
1173
|
+
* `map` can be used to turn functions `(a: A) => B` into functions `(fa: Array<A>) => Array<B>`.
|
|
1174
|
+
* In practice it applies the base function to each element of the array and collects the
|
|
1175
|
+
* results in a new array.
|
|
1176
|
+
*
|
|
1177
|
+
* @example
|
|
1178
|
+
* import { map } from 'fp-ts/Array'
|
|
1179
|
+
* import { pipe } from 'fp-ts/function'
|
|
1180
|
+
*
|
|
1181
|
+
* const f = (n: number) => n * 2;
|
|
1182
|
+
* assert.deepStrictEqual(pipe([1, 2, 3], map(f)), [2, 4, 6]);
|
|
1183
|
+
*
|
|
1184
|
+
* @category mapping
|
|
1185
|
+
* @since 2.0.0
|
|
1186
|
+
*/
|
|
1187
|
+
export var map = function (f) { return function (fa) { return fa.map(function (a) { return f(a); }); }; };
|
|
1188
|
+
/**
|
|
1189
|
+
* @example
|
|
1190
|
+
* import { ap, map, of } from 'fp-ts/Array'
|
|
1191
|
+
* import { pipe } from 'fp-ts/function'
|
|
1192
|
+
*
|
|
1193
|
+
* // a curried function with 3 input parameteres
|
|
1194
|
+
* const f = (s1: string) => (n: number) => (s2: string) => s1 + n + s2;
|
|
1195
|
+
*
|
|
1196
|
+
* // let's use `ap` to iterate `f` over an array for each input parameter
|
|
1197
|
+
* assert.deepStrictEqual(pipe(["a", "b"], map(f), ap([1, 2]), ap(["😀", "😫", "😎"])), [
|
|
1198
|
+
* "a1😀", "a1😫", "a1😎",
|
|
1199
|
+
* "a2😀", "a2😫", "a2😎",
|
|
1200
|
+
* "b1😀", "b1😫", "b1😎",
|
|
1201
|
+
* "b2😀", "b2😫", "b2😎",
|
|
1202
|
+
* ]);
|
|
1203
|
+
*
|
|
1204
|
+
* // given Array implements the Applicative interface with the `of` method,
|
|
1205
|
+
* // we can write exactly the same thing in a more symmetric way
|
|
1206
|
+
* // using `of` on `f` and `ap` on each array in input
|
|
1207
|
+
* assert.deepStrictEqual(
|
|
1208
|
+
* pipe(of(f), ap(["a", "b"]), ap([1, 2]), ap(["😀", "😫", "😎"])),
|
|
1209
|
+
* pipe(["a", "b"], map(f), ap([1, 2]), ap(["😀", "😫", "😎"]))
|
|
1210
|
+
* );
|
|
1211
|
+
*
|
|
1212
|
+
* @since 2.0.0
|
|
1213
|
+
*/
|
|
1214
|
+
export var ap = function (fa) {
|
|
1215
|
+
return flatMap(function (f) { return pipe(fa, map(f)); });
|
|
1216
|
+
};
|
|
1217
|
+
/**
|
|
1218
|
+
* Composes computations in sequence, using the return value of one computation to
|
|
1219
|
+
* determine the next computation.
|
|
1220
|
+
*
|
|
1221
|
+
* In other words it takes a function `f` that produces an array from a single element of
|
|
1222
|
+
* the base type `A` and returns a new function which applies `f` to each element of the
|
|
1223
|
+
* input array (like [`map`](#map)) and, instead of returning an array of arrays, concatenates the
|
|
1224
|
+
* results into a single array (like [`flatten`](#flatten)).
|
|
1225
|
+
*
|
|
1226
|
+
* @example
|
|
1227
|
+
* import { flatMap, map, replicate } from 'fp-ts/Array'
|
|
1228
|
+
* import { pipe } from 'fp-ts/function'
|
|
1229
|
+
*
|
|
1230
|
+
* const f = (n: number) => replicate(n, `${n}`);
|
|
1231
|
+
* assert.deepStrictEqual(pipe([1, 2, 3], map(f)), [["1"], ["2", "2"], ["3", "3", "3"]]);
|
|
1232
|
+
* assert.deepStrictEqual(pipe([1, 2, 3], flatMap(f)), ["1", "2", "2", "3", "3", "3"]);
|
|
1233
|
+
*
|
|
1234
|
+
* @category sequencing
|
|
1235
|
+
* @since 2.14.0
|
|
1236
|
+
*/
|
|
1237
|
+
export var flatMap = /*#__PURE__*/ dual(2, function (ma, f) {
|
|
1238
|
+
return pipe(ma, chainWithIndex(function (i, a) { return f(a, i); }));
|
|
1239
|
+
});
|
|
1240
|
+
/**
|
|
1241
|
+
* Takes an array of arrays of `A` and flattens them into an array of `A`
|
|
1242
|
+
* by concatenating the elements of each array in order.
|
|
1243
|
+
*
|
|
1244
|
+
* @example
|
|
1245
|
+
* import { flatten } from 'fp-ts/Array'
|
|
1246
|
+
*
|
|
1247
|
+
* assert.deepStrictEqual(flatten([["a"], ["b", "c"], ["d", "e", "f"]]), ["a", "b", "c", "d", "e", "f"]);
|
|
1248
|
+
*
|
|
1249
|
+
* @category sequencing
|
|
1250
|
+
* @since 2.5.0
|
|
1251
|
+
*/
|
|
1252
|
+
export var flatten = /*#__PURE__*/ flatMap(identity);
|
|
1253
|
+
/**
|
|
1254
|
+
* Same as [`map`](#map), but the iterating function takes both the index and the value
|
|
1255
|
+
* of the element.
|
|
1256
|
+
*
|
|
1257
|
+
* @example
|
|
1258
|
+
* import { mapWithIndex } from 'fp-ts/Array'
|
|
1259
|
+
* import { pipe } from 'fp-ts/function'
|
|
1260
|
+
*
|
|
1261
|
+
* const f = (i: number, s: string) => `${s} - ${i}`;
|
|
1262
|
+
* assert.deepStrictEqual(pipe(["a", "b", "c"], mapWithIndex(f)), ["a - 0", "b - 1", "c - 2"]);
|
|
1263
|
+
*
|
|
1264
|
+
* @category mapping
|
|
1265
|
+
* @since 2.0.0
|
|
1266
|
+
*/
|
|
1267
|
+
export var mapWithIndex = function (f) { return function (fa) {
|
|
1268
|
+
return fa.map(function (a, i) { return f(i, a); });
|
|
1269
|
+
}; };
|
|
1270
|
+
/**
|
|
1271
|
+
* Maps an array with an iterating function that takes the index and the value of
|
|
1272
|
+
* each element and returns an `Option`. It keeps only the `Some` values discarding
|
|
1273
|
+
* the `None`s.
|
|
1274
|
+
*
|
|
1275
|
+
* Same as [`filterMap`](#filterMap), but with an iterating function which takes also
|
|
1276
|
+
* the index as input.
|
|
1277
|
+
*
|
|
1278
|
+
* @example
|
|
1279
|
+
* import { filterMapWithIndex } from 'fp-ts/Array'
|
|
1280
|
+
* import { pipe } from 'fp-ts/function'
|
|
1281
|
+
* import { option } from "fp-ts";
|
|
1282
|
+
*
|
|
1283
|
+
* const f = (i: number, s: string) => (i % 2 === 1 ? option.some(s.toUpperCase()) : option.none);
|
|
1284
|
+
* assert.deepStrictEqual(pipe(["a", "no", "neither", "b"], filterMapWithIndex(f)), ["NO", "B"]);
|
|
1285
|
+
*
|
|
1286
|
+
* @category filtering
|
|
1287
|
+
* @since 2.0.0
|
|
1288
|
+
*/
|
|
1289
|
+
export var filterMapWithIndex = function (f) {
|
|
1290
|
+
return function (fa) {
|
|
1291
|
+
var out = [];
|
|
1292
|
+
for (var i = 0; i < fa.length; i++) {
|
|
1293
|
+
var optionB = f(i, fa[i]);
|
|
1294
|
+
if (_.isSome(optionB)) {
|
|
1295
|
+
out.push(optionB.value);
|
|
1296
|
+
}
|
|
1297
|
+
}
|
|
1298
|
+
return out;
|
|
1299
|
+
};
|
|
1300
|
+
};
|
|
1301
|
+
/**
|
|
1302
|
+
* Maps an array with an iterating function that returns an `Option`
|
|
1303
|
+
* and it keeps only the `Some` values discarding the `None`s.
|
|
1304
|
+
*
|
|
1305
|
+
* @example
|
|
1306
|
+
* import { filterMap } from 'fp-ts/Array'
|
|
1307
|
+
* import { pipe } from 'fp-ts/function'
|
|
1308
|
+
* import { option } from "fp-ts";
|
|
1309
|
+
*
|
|
1310
|
+
* const f = (s: string) => s.length === 1 ? option.some(s.toUpperCase()) : option.none;
|
|
1311
|
+
* assert.deepStrictEqual(pipe(["a", "no", "neither", "b"], filterMap(f)), ["A", "B"]);
|
|
1312
|
+
*
|
|
1313
|
+
* @category filtering
|
|
1314
|
+
* @since 2.0.0
|
|
1315
|
+
*/
|
|
1316
|
+
export var filterMap = function (f) {
|
|
1317
|
+
return filterMapWithIndex(function (_, a) { return f(a); });
|
|
1318
|
+
};
|
|
1319
|
+
/**
|
|
1320
|
+
* Compact an array of `Option`s discarding the `None` values and
|
|
1321
|
+
* keeping the `Some` values. It returns a new array containing the values of
|
|
1322
|
+
* the `Some` options.
|
|
1323
|
+
*
|
|
1324
|
+
* @example
|
|
1325
|
+
* import { compact } from 'fp-ts/Array'
|
|
1326
|
+
* import { option } from "fp-ts";
|
|
1327
|
+
*
|
|
1328
|
+
* assert.deepStrictEqual(compact([option.some("a"), option.none, option.some("b")]), ["a", "b"]);
|
|
1329
|
+
*
|
|
1330
|
+
* @category filtering
|
|
1331
|
+
* @since 2.0.0
|
|
1332
|
+
*/
|
|
1333
|
+
export var compact = /*#__PURE__*/ filterMap(identity);
|
|
1334
|
+
/**
|
|
1335
|
+
* Separate an array of `Either`s into `Left`s and `Right`s, creating two new arrays:
|
|
1336
|
+
* one containing all the left values and one containing all the right values.
|
|
1337
|
+
*
|
|
1338
|
+
* @example
|
|
1339
|
+
* import { separate } from 'fp-ts/Array'
|
|
1340
|
+
* import { either } from "fp-ts";
|
|
1341
|
+
*
|
|
1342
|
+
* assert.deepStrictEqual(separate([either.right("r1"), either.left("l1"), either.right("r2")]), {
|
|
1343
|
+
* left: ["l1"],
|
|
1344
|
+
* right: ["r1", "r2"],
|
|
1345
|
+
* });
|
|
1346
|
+
*
|
|
1347
|
+
* @category filtering
|
|
1348
|
+
* @since 2.0.0
|
|
1349
|
+
*/
|
|
1350
|
+
export var separate = function (fa) {
|
|
1351
|
+
var left = [];
|
|
1352
|
+
var right = [];
|
|
1353
|
+
for (var _i = 0, fa_1 = fa; _i < fa_1.length; _i++) {
|
|
1354
|
+
var e = fa_1[_i];
|
|
1355
|
+
if (e._tag === 'Left') {
|
|
1356
|
+
left.push(e.left);
|
|
1357
|
+
}
|
|
1358
|
+
else {
|
|
1359
|
+
right.push(e.right);
|
|
1360
|
+
}
|
|
1361
|
+
}
|
|
1362
|
+
return separated(left, right);
|
|
1363
|
+
};
|
|
1364
|
+
/**
|
|
1365
|
+
* Given an iterating function that is a `Predicate` or a `Refinement`,
|
|
1366
|
+
* `filter` creates a new `Array` containing the elements of the original
|
|
1367
|
+
* `Array` for which the iterating function is `true`.
|
|
1368
|
+
*
|
|
1369
|
+
* @example
|
|
1370
|
+
* import { filter } from 'fp-ts/Array'
|
|
1371
|
+
* import { isString } from "fp-ts/string";
|
|
1372
|
+
*
|
|
1373
|
+
* assert.deepStrictEqual(filter(isString)(["a", 1, {}, "b", 5]), ["a", "b"]);
|
|
1374
|
+
* assert.deepStrictEqual(filter((x:number) => x > 0)([-3, 1, -2, 5]), [1, 5]);
|
|
1375
|
+
*
|
|
1376
|
+
* @category filtering
|
|
1377
|
+
* @since 2.0.0
|
|
1378
|
+
*/
|
|
1379
|
+
export var filter = function (predicate) {
|
|
1380
|
+
return function (as) {
|
|
1381
|
+
return as.filter(predicate);
|
|
1382
|
+
};
|
|
1383
|
+
};
|
|
1384
|
+
/**
|
|
1385
|
+
* Given an iterating function that is a `Predicate` or a `Refinement`,
|
|
1386
|
+
* `partition` creates two new `Array`s: `right` containing the elements of the original
|
|
1387
|
+
* `Array` for which the iterating function is `true`, `left` containing the elements
|
|
1388
|
+
* for which it is false.
|
|
1389
|
+
*
|
|
1390
|
+
* @example
|
|
1391
|
+
* import { partition } from 'fp-ts/Array'
|
|
1392
|
+
* import { isString } from "fp-ts/string";
|
|
1393
|
+
*
|
|
1394
|
+
* assert.deepStrictEqual(partition(isString)(["a", 1, {}, "b", 5]), { left: [1, {}, 5], right: ["a", "b"] });
|
|
1395
|
+
* assert.deepStrictEqual(partition((x: number) => x > 0)([-3, 1, -2, 5]), { left: [-3, -2], right: [1, 5] });
|
|
1396
|
+
*
|
|
1397
|
+
* @category filtering
|
|
1398
|
+
* @since 2.0.0
|
|
1399
|
+
*/
|
|
1400
|
+
export var partition = function (predicate) {
|
|
1401
|
+
return partitionWithIndex(function (_, a) { return predicate(a); });
|
|
1402
|
+
};
|
|
1403
|
+
/**
|
|
1404
|
+
* Same as [`partition`](#partition), but passing also the index to the iterating function.
|
|
1405
|
+
*
|
|
1406
|
+
* @example
|
|
1407
|
+
* import { partitionWithIndex } from 'fp-ts/Array'
|
|
1408
|
+
*
|
|
1409
|
+
* assert.deepStrictEqual(partitionWithIndex((index, x: number) => index < 3 && x > 0)([-2, 5, 6, 7]), {
|
|
1410
|
+
* left: [-2, 7],
|
|
1411
|
+
* right: [5, 6],
|
|
1412
|
+
* });
|
|
1413
|
+
*
|
|
1414
|
+
* @category filtering
|
|
1415
|
+
* @since 2.0.0
|
|
1416
|
+
*/
|
|
1417
|
+
export var partitionWithIndex = function (predicateWithIndex) {
|
|
1418
|
+
return function (as) {
|
|
1419
|
+
var left = [];
|
|
1420
|
+
var right = [];
|
|
1421
|
+
for (var i = 0; i < as.length; i++) {
|
|
1422
|
+
var b = as[i];
|
|
1423
|
+
if (predicateWithIndex(i, b)) {
|
|
1424
|
+
right.push(b);
|
|
1425
|
+
}
|
|
1426
|
+
else {
|
|
1427
|
+
left.push(b);
|
|
1428
|
+
}
|
|
1429
|
+
}
|
|
1430
|
+
return separated(left, right);
|
|
1431
|
+
};
|
|
1432
|
+
};
|
|
1433
|
+
/**
|
|
1434
|
+
* Given an iterating function that returns an `Either`,
|
|
1435
|
+
* `partitionMap` applies the iterating function to each element and it creates two `Array`s:
|
|
1436
|
+
* `right` containing the values of `Right` results, `left` containing the values of `Left` results.
|
|
1437
|
+
*
|
|
1438
|
+
* @example
|
|
1439
|
+
* import { partitionMap } from 'fp-ts/Array'
|
|
1440
|
+
* import { Either, left, right } from "fp-ts/Either";
|
|
1441
|
+
*
|
|
1442
|
+
* const upperIfString = <B>(x: B): Either<B, string> =>
|
|
1443
|
+
* typeof x === "string" ? right(x.toUpperCase()) : left(x);
|
|
1444
|
+
* assert.deepStrictEqual(partitionMap(upperIfString)([-2, "hello", 6, 7, "world"]), {
|
|
1445
|
+
* left: [-2, 6, 7],
|
|
1446
|
+
* right: [ 'HELLO', 'WORLD' ],
|
|
1447
|
+
* });
|
|
1448
|
+
*
|
|
1449
|
+
* @category filtering
|
|
1450
|
+
* @since 2.0.0
|
|
1451
|
+
*/
|
|
1452
|
+
export var partitionMap = function (f) { return partitionMapWithIndex(function (_, a) { return f(a); }); };
|
|
1453
|
+
/**
|
|
1454
|
+
* Same as [`partitionMap`](#partitionMap), but passing also the index to the iterating function.
|
|
1455
|
+
*
|
|
1456
|
+
* @example
|
|
1457
|
+
* import { partitionMapWithIndex } from 'fp-ts/Array'
|
|
1458
|
+
* import { Either, left, right } from "fp-ts/Either";
|
|
1459
|
+
*
|
|
1460
|
+
* const upperIfStringBefore3 = <B>(index: number, x: B): Either<B, string> =>
|
|
1461
|
+
* index < 3 && typeof x === "string" ? right(x.toUpperCase()) : left(x);
|
|
1462
|
+
* assert.deepStrictEqual(partitionMapWithIndex(upperIfStringBefore3)([-2, "hello", 6, 7, "world"]), {
|
|
1463
|
+
* left: [-2, 6, 7, "world"],
|
|
1464
|
+
* right: ["HELLO"],
|
|
1465
|
+
* });
|
|
1466
|
+
*
|
|
1467
|
+
* @category filtering
|
|
1468
|
+
* @since 2.0.0
|
|
1469
|
+
*/
|
|
1470
|
+
export var partitionMapWithIndex = function (f) {
|
|
1471
|
+
return function (fa) {
|
|
1472
|
+
var left = [];
|
|
1473
|
+
var right = [];
|
|
1474
|
+
for (var i = 0; i < fa.length; i++) {
|
|
1475
|
+
var e = f(i, fa[i]);
|
|
1476
|
+
if (e._tag === 'Left') {
|
|
1477
|
+
left.push(e.left);
|
|
1478
|
+
}
|
|
1479
|
+
else {
|
|
1480
|
+
right.push(e.right);
|
|
1481
|
+
}
|
|
1482
|
+
}
|
|
1483
|
+
return separated(left, right);
|
|
1484
|
+
};
|
|
1485
|
+
};
|
|
1486
|
+
/**
|
|
1487
|
+
* Less strict version of [`alt`](#alt).
|
|
1488
|
+
*
|
|
1489
|
+
* The `W` suffix (short for **W**idening) means that the return types will be merged.
|
|
1490
|
+
*
|
|
1491
|
+
* @example
|
|
1492
|
+
* import * as A from 'fp-ts/Array'
|
|
1493
|
+
* import { pipe } from 'fp-ts/function'
|
|
1494
|
+
*
|
|
1495
|
+
* assert.deepStrictEqual(
|
|
1496
|
+
* pipe(
|
|
1497
|
+
* [1, 2, 3],
|
|
1498
|
+
* A.altW(() => ['a', 'b'])
|
|
1499
|
+
* ),
|
|
1500
|
+
* [1, 2, 3, 'a', 'b']
|
|
1501
|
+
* )
|
|
1502
|
+
*
|
|
1503
|
+
* @category error handling
|
|
1504
|
+
* @since 2.9.0
|
|
1505
|
+
*/
|
|
1506
|
+
export var altW = function (that) {
|
|
1507
|
+
return function (fa) {
|
|
1508
|
+
return fa.concat(that());
|
|
1509
|
+
};
|
|
1510
|
+
};
|
|
1511
|
+
/**
|
|
1512
|
+
* Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to
|
|
1513
|
+
* types of kind `* -> *`.
|
|
1514
|
+
*
|
|
1515
|
+
* In case of `Array` concatenates the inputs into a single array.
|
|
1516
|
+
*
|
|
1517
|
+
* @example
|
|
1518
|
+
* import * as A from 'fp-ts/Array'
|
|
1519
|
+
* import { pipe } from 'fp-ts/function'
|
|
1520
|
+
*
|
|
1521
|
+
* assert.deepStrictEqual(
|
|
1522
|
+
* pipe(
|
|
1523
|
+
* [1, 2, 3],
|
|
1524
|
+
* A.alt(() => [4, 5])
|
|
1525
|
+
* ),
|
|
1526
|
+
* [1, 2, 3, 4, 5]
|
|
1527
|
+
* )
|
|
1528
|
+
*
|
|
1529
|
+
* @category error handling
|
|
1530
|
+
* @since 2.0.0
|
|
1531
|
+
*/
|
|
1532
|
+
export var alt = altW;
|
|
1533
|
+
/**
|
|
1534
|
+
* Same as [`filter`](#filter), but passing also the index to the iterating function.
|
|
1535
|
+
*
|
|
1536
|
+
* @example
|
|
1537
|
+
* import { filterWithIndex } from 'fp-ts/Array';
|
|
1538
|
+
*
|
|
1539
|
+
* const f = (index: number, x: number) => x > 0 && index <= 2;
|
|
1540
|
+
* assert.deepStrictEqual(filterWithIndex(f)([-3, 1, -2, 5]), [1]);
|
|
1541
|
+
*
|
|
1542
|
+
* @category filtering
|
|
1543
|
+
* @since 2.0.0
|
|
1544
|
+
*/
|
|
1545
|
+
export var filterWithIndex = function (predicateWithIndex) {
|
|
1546
|
+
return function (as) {
|
|
1547
|
+
return as.filter(function (b, i) { return predicateWithIndex(i, b); });
|
|
1548
|
+
};
|
|
1549
|
+
};
|
|
1550
|
+
/**
|
|
1551
|
+
* Given an iterating function that takes `Array<A>` as input, `extend` returns
|
|
1552
|
+
* an array containing the results of the iterating function applied to the whole input
|
|
1553
|
+
* `Array`, then to the input `Array` without the first element, then to the input
|
|
1554
|
+
* `Array` without the first two elements, etc.
|
|
1555
|
+
*
|
|
1556
|
+
* @example
|
|
1557
|
+
* import { extend } from 'fp-ts/Array'
|
|
1558
|
+
*
|
|
1559
|
+
* const f = (a: string[]) => a.join(",");
|
|
1560
|
+
* assert.deepStrictEqual(extend(f)(["a", "b", "c"]), ["a,b,c", "b,c", "c"]);
|
|
1561
|
+
*
|
|
1562
|
+
* @since 2.0.0
|
|
1563
|
+
*/
|
|
1564
|
+
export var extend = function (f) { return function (wa) {
|
|
1565
|
+
return wa.map(function (_, i) { return f(wa.slice(i)); });
|
|
1566
|
+
}; };
|
|
1567
|
+
/**
|
|
1568
|
+
* `duplicate` returns an array containing the whole input `Array`,
|
|
1569
|
+
* then to the input `Array` dropping the first element, then to the input
|
|
1570
|
+
* `Array` dropping the first two elements, etc.
|
|
1571
|
+
*
|
|
1572
|
+
* @example
|
|
1573
|
+
* import { duplicate } from 'fp-ts/Array'
|
|
1574
|
+
*
|
|
1575
|
+
* assert.deepStrictEqual(duplicate(["a", "b", "c"]), [["a", "b", "c"], ["b", "c"], ["c"]]);
|
|
1576
|
+
*
|
|
1577
|
+
* @since 2.0.0
|
|
1578
|
+
*/
|
|
1579
|
+
export var duplicate = /*#__PURE__*/ extend(identity);
|
|
1580
|
+
/**
|
|
1581
|
+
* Map and fold an `Array`.
|
|
1582
|
+
* Map the `Array` passing each value to the iterating function.
|
|
1583
|
+
* Then fold the results using the provided `Monoid`.
|
|
1584
|
+
*
|
|
1585
|
+
* @example
|
|
1586
|
+
* import { foldMap } from 'fp-ts/Array'
|
|
1587
|
+
*
|
|
1588
|
+
* const monoid = { concat: (a: string, b: string) => a + b, empty: "" };
|
|
1589
|
+
* const f = (s: string) => s.toUpperCase()
|
|
1590
|
+
* assert.deepStrictEqual(foldMap(monoid)(f)(["a", "b", "c"]), "ABC");
|
|
1591
|
+
*
|
|
1592
|
+
* @category folding
|
|
1593
|
+
* @since 2.0.0
|
|
1594
|
+
*/
|
|
1595
|
+
export var foldMap = RA.foldMap;
|
|
1596
|
+
/**
|
|
1597
|
+
* Same as [`foldMap`](#foldMap) but passing also the index to the iterating function.
|
|
1598
|
+
*
|
|
1599
|
+
* @example
|
|
1600
|
+
* import { foldMapWithIndex } from 'fp-ts/Array'
|
|
1601
|
+
*
|
|
1602
|
+
* const monoid = { concat: (a: string, b: string) => a + b, empty: "" };
|
|
1603
|
+
* const f = (index:number, s: string) => `${s.toUpperCase()}(${index})`
|
|
1604
|
+
* assert.deepStrictEqual(foldMapWithIndex(monoid)(f)(["a", "b", "c"]), "A(0)B(1)C(2)");
|
|
1605
|
+
*
|
|
1606
|
+
* @category folding
|
|
1607
|
+
* @since 2.0.0
|
|
1608
|
+
*/
|
|
1609
|
+
export var foldMapWithIndex = RA.foldMapWithIndex;
|
|
1610
|
+
/**
|
|
1611
|
+
* Reduces an `Array`.
|
|
1612
|
+
*
|
|
1613
|
+
* `reduce` executes the supplied iterating function on each element of the array,
|
|
1614
|
+
* in order, passing in the element and the return value from the calculation on the preceding element.
|
|
1615
|
+
*
|
|
1616
|
+
* The first time that the iterating function is called there is no "return value of the
|
|
1617
|
+
* previous calculation", the initial value is used in its place.
|
|
1618
|
+
*
|
|
1619
|
+
* @example
|
|
1620
|
+
* import { reduce } from 'fp-ts/Array'
|
|
1621
|
+
*
|
|
1622
|
+
* assert.deepStrictEqual(reduce(5, (acc: number, cur: number) => acc * cur)([2, 3]), 5 * 2 * 3);
|
|
1623
|
+
*
|
|
1624
|
+
* @category folding
|
|
1625
|
+
* @since 2.0.0
|
|
1626
|
+
*/
|
|
1627
|
+
export var reduce = RA.reduce;
|
|
1628
|
+
/**
|
|
1629
|
+
* Same as [`reduce`](#reduce) but passing also the index to the iterating function.
|
|
1630
|
+
*
|
|
1631
|
+
* @example
|
|
1632
|
+
* import { reduceWithIndex } from 'fp-ts/Array'
|
|
1633
|
+
*
|
|
1634
|
+
* const f = (index: number, acc: string, cur: unknown) =>
|
|
1635
|
+
* acc + (typeof cur === "string" ? cur.toUpperCase() + index : "");
|
|
1636
|
+
* assert.deepStrictEqual(reduceWithIndex("", f)([2, "a", "b", null]), "A1B2");
|
|
1637
|
+
*
|
|
1638
|
+
* @category folding
|
|
1639
|
+
* @since 2.0.0
|
|
1640
|
+
*/
|
|
1641
|
+
export var reduceWithIndex = RA.reduceWithIndex;
|
|
1642
|
+
/**
|
|
1643
|
+
* Same as [`reduce`](#reduce) but applied from the end to the start.
|
|
1644
|
+
*
|
|
1645
|
+
* *Note*: the iterating function in this case takes the accumulator as the last argument.
|
|
1646
|
+
*
|
|
1647
|
+
* @example
|
|
1648
|
+
* import { reduceRight } from 'fp-ts/Array'
|
|
1649
|
+
*
|
|
1650
|
+
* assert.deepStrictEqual(reduceRight("", (cur: string, acc: string) => acc + cur)(["a", "b", "c"]), "cba");
|
|
1651
|
+
*
|
|
1652
|
+
* @category folding
|
|
1653
|
+
* @since 2.0.0
|
|
1654
|
+
*/
|
|
1655
|
+
export var reduceRight = RA.reduceRight;
|
|
1656
|
+
/**
|
|
1657
|
+
* Same as [`reduceRight`](#reduceRight) but passing also the index to the iterating function.
|
|
1658
|
+
*
|
|
1659
|
+
* @example
|
|
1660
|
+
* import { reduceRightWithIndex } from 'fp-ts/Array'
|
|
1661
|
+
*
|
|
1662
|
+
* const f = (index: number, cur: unknown, acc: string) =>
|
|
1663
|
+
* acc + (typeof cur === "string" ? cur.toUpperCase() + index : "");
|
|
1664
|
+
* assert.deepStrictEqual(reduceRightWithIndex("", f)([2, "a", "b", null]), "B2A1");
|
|
1665
|
+
*
|
|
1666
|
+
* @category folding
|
|
1667
|
+
* @since 2.0.0
|
|
1668
|
+
*/
|
|
1669
|
+
export var reduceRightWithIndex = RA.reduceRightWithIndex;
|
|
1670
|
+
/**
|
|
1671
|
+
* Given an iterating function that returns a `HKT` (higher kinded type), `traverse`
|
|
1672
|
+
* applies the iterating function to each element of the `Array` and then [`sequence`](#sequence)-s
|
|
1673
|
+
* the results using the provided `Applicative`.
|
|
1674
|
+
*
|
|
1675
|
+
* E.g. suppose you have an `Array` and you want to format each element with a function
|
|
1676
|
+
* that returns a result or an error as `f = (a: A) => Either<Error, B>`, using `traverse`
|
|
1677
|
+
* you can apply `f` to all elements and directly obtain as a result an `Either<Error,Array<B>>`
|
|
1678
|
+
* i.e. an `Array<B>` if all the results are `B`, or an `Error` if some of the results
|
|
1679
|
+
* are `Error`s.
|
|
1680
|
+
*
|
|
1681
|
+
* @example
|
|
1682
|
+
* import { traverse } from 'fp-ts/Array'
|
|
1683
|
+
* import { Applicative, left, right } from "fp-ts/Either";
|
|
1684
|
+
*
|
|
1685
|
+
* const f = (x: unknown) =>
|
|
1686
|
+
* typeof x === "string" ? right(x.toUpperCase()) : left(new Error("not a string"));
|
|
1687
|
+
* assert.deepStrictEqual(traverse(Applicative)(f)(["a", "b"]), right(["A", "B"]));
|
|
1688
|
+
* assert.deepStrictEqual(traverse(Applicative)(f)(["a", 5]), left(new Error("not a string")));
|
|
1689
|
+
*
|
|
1690
|
+
* @category traversing
|
|
1691
|
+
* @since 2.6.3
|
|
1692
|
+
*/
|
|
1693
|
+
export var traverse = function (F) {
|
|
1694
|
+
var traverseWithIndexF = traverseWithIndex(F);
|
|
1695
|
+
return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); };
|
|
1696
|
+
};
|
|
1697
|
+
/**
|
|
1698
|
+
* `sequence` takes an `Array` where elements are `HKT<A>` (higher kinded type) and,
|
|
1699
|
+
* using an applicative of that `HKT`, returns an `HKT` of `Array<A>`.
|
|
1700
|
+
* E.g. it can turn an `Array<Either<Error, string>>` into an `Either<Error, Array<string>>`.
|
|
1701
|
+
*
|
|
1702
|
+
* `sequence` requires an `Applicative` of the `HKT` you are targeting, e.g. to turn an
|
|
1703
|
+
* `Array<Either<E, A>>` into an `Either<E, Array<A>>`, it needs an
|
|
1704
|
+
* `Applicative` for `Either`, to to turn an `Array<Option<A>>` into an `Option<Array<A>>`,
|
|
1705
|
+
* it needs an `Applicative` for `Option`.
|
|
1706
|
+
*
|
|
1707
|
+
* @example
|
|
1708
|
+
* import { sequence } from 'fp-ts/Array'
|
|
1709
|
+
* import { Applicative, left, right } from "fp-ts/Either";
|
|
1710
|
+
*
|
|
1711
|
+
* assert.deepStrictEqual(sequence(Applicative)([right("a"), right("b")]), right(["a", "b"]));
|
|
1712
|
+
* assert.deepStrictEqual(
|
|
1713
|
+
* sequence(Applicative)([right("a"), left(new Error("not a string"))]),
|
|
1714
|
+
* left(new Error("not a string"))
|
|
1715
|
+
* );
|
|
1716
|
+
*
|
|
1717
|
+
* @category traversing
|
|
1718
|
+
* @since 2.6.3
|
|
1719
|
+
*/
|
|
1720
|
+
export var sequence = function (F) {
|
|
1721
|
+
return function (ta) {
|
|
1722
|
+
return _reduce(ta, F.of(zero()), function (fas, fa) {
|
|
1723
|
+
return F.ap(F.map(fas, function (as) { return function (a) { return pipe(as, append(a)); }; }), fa);
|
|
1724
|
+
});
|
|
1725
|
+
};
|
|
1726
|
+
};
|
|
1727
|
+
/**
|
|
1728
|
+
* Same as [`traverse`](#traverse) but passing also the index to the iterating function.
|
|
1729
|
+
*
|
|
1730
|
+
* @example
|
|
1731
|
+
* import { traverseWithIndex } from 'fp-ts/Array'
|
|
1732
|
+
* import { Applicative, left, right } from "fp-ts/Either";
|
|
1733
|
+
*
|
|
1734
|
+
* const f = (index:number, x:unknown) =>
|
|
1735
|
+
* typeof x === "string" ? right(x.toUpperCase() + index) : left(new Error("not a string"));
|
|
1736
|
+
* assert.deepStrictEqual(traverseWithIndex(Applicative)(f)(["a", "b"]), right(["A0", "B1"]));
|
|
1737
|
+
* assert.deepStrictEqual(traverseWithIndex(Applicative)(f)(["a", 5]), left(new Error("not a string")));
|
|
1738
|
+
*
|
|
1739
|
+
* @category sequencing
|
|
1740
|
+
* @since 2.6.3
|
|
1741
|
+
*/
|
|
1742
|
+
export var traverseWithIndex = function (F) {
|
|
1743
|
+
return function (f) {
|
|
1744
|
+
return reduceWithIndex(F.of(zero()), function (i, fbs, a) {
|
|
1745
|
+
return F.ap(F.map(fbs, function (bs) { return function (b) { return pipe(bs, append(b)); }; }), f(i, a));
|
|
1746
|
+
});
|
|
1747
|
+
};
|
|
1748
|
+
};
|
|
1749
|
+
/**
|
|
1750
|
+
* @category filtering
|
|
1751
|
+
* @since 2.6.5
|
|
1752
|
+
*/
|
|
1753
|
+
export var wither = function (F) {
|
|
1754
|
+
var _witherF = _wither(F);
|
|
1755
|
+
return function (f) { return function (fa) { return _witherF(fa, f); }; };
|
|
1756
|
+
};
|
|
1757
|
+
/**
|
|
1758
|
+
* @category filtering
|
|
1759
|
+
* @since 2.6.5
|
|
1760
|
+
*/
|
|
1761
|
+
export var wilt = function (F) {
|
|
1762
|
+
var _wiltF = _wilt(F);
|
|
1763
|
+
return function (f) { return function (fa) { return _wiltF(fa, f); }; };
|
|
1764
|
+
};
|
|
1765
|
+
/**
|
|
1766
|
+
* `unfold` takes a function `f` which returns an `Option` of a tuple containing an outcome
|
|
1767
|
+
* value and an input for the following iteration.
|
|
1768
|
+
* `unfold` applies `f` to the initial value `b` and then recursively to the second
|
|
1769
|
+
* element of the tuple contained in the returned `option` of the previous
|
|
1770
|
+
* calculation until `f` returns `Option.none`.
|
|
1771
|
+
*
|
|
1772
|
+
* @example
|
|
1773
|
+
* import { unfold } from 'fp-ts/Array'
|
|
1774
|
+
* import { option } from 'fp-ts'
|
|
1775
|
+
*
|
|
1776
|
+
* const f = (n: number) => {
|
|
1777
|
+
* if (n <= 0) return option.none;
|
|
1778
|
+
* const returnValue = n * 2;
|
|
1779
|
+
* const inputForNextRound = n - 1;
|
|
1780
|
+
* return option.some([returnValue, inputForNextRound] as const);
|
|
1781
|
+
* };
|
|
1782
|
+
* assert.deepStrictEqual(unfold(5, f), [10, 8, 6, 4, 2]);
|
|
1783
|
+
*
|
|
1784
|
+
* @since 2.6.6
|
|
1785
|
+
*/
|
|
1786
|
+
export var unfold = function (b, f) {
|
|
1787
|
+
var out = [];
|
|
1788
|
+
var bb = b;
|
|
1789
|
+
// eslint-disable-next-line no-constant-condition
|
|
1790
|
+
while (true) {
|
|
1791
|
+
var mt = f(bb);
|
|
1792
|
+
if (_.isSome(mt)) {
|
|
1793
|
+
var _a = mt.value, a = _a[0], b_1 = _a[1];
|
|
1794
|
+
out.push(a);
|
|
1795
|
+
bb = b_1;
|
|
1796
|
+
}
|
|
1797
|
+
else {
|
|
1798
|
+
break;
|
|
1799
|
+
}
|
|
1800
|
+
}
|
|
1801
|
+
return out;
|
|
1802
|
+
};
|
|
1803
|
+
/**
|
|
1804
|
+
* @category type lambdas
|
|
1805
|
+
* @since 2.0.0
|
|
1806
|
+
*/
|
|
1807
|
+
export var URI = 'Array';
|
|
1808
|
+
/**
|
|
1809
|
+
* `getShow` makes a `Show` for an `Array<A>` from a `Show` for
|
|
1810
|
+
* an `A`.
|
|
1811
|
+
*
|
|
1812
|
+
* @example
|
|
1813
|
+
* import { getShow } from 'fp-ts/Array'
|
|
1814
|
+
*
|
|
1815
|
+
* const numShow = { show: (n: number) => (n >= 0 ? `${n}` : `(${-n})`) };
|
|
1816
|
+
* assert.deepStrictEqual(getShow(numShow).show([-2, -1, 0, 1]), "[(2), (1), 0, 1]");
|
|
1817
|
+
*
|
|
1818
|
+
* @category instances
|
|
1819
|
+
* @since 2.0.0
|
|
1820
|
+
*/
|
|
1821
|
+
export var getShow = RA.getShow;
|
|
1822
|
+
/**
|
|
1823
|
+
* Get a `Semigroup` based on the concatenation of `Array`s.
|
|
1824
|
+
* See also [`getMonoid`](#getMonoid).
|
|
1825
|
+
*
|
|
1826
|
+
* @example
|
|
1827
|
+
* import { getSemigroup } from 'fp-ts/Array'
|
|
1828
|
+
*
|
|
1829
|
+
* const S = getSemigroup<number>();
|
|
1830
|
+
* assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1, 2, 2, 3]);
|
|
1831
|
+
*
|
|
1832
|
+
* @category instances
|
|
1833
|
+
* @since 2.10.0
|
|
1834
|
+
*/
|
|
1835
|
+
export var getSemigroup = function () { return ({
|
|
1836
|
+
concat: function (first, second) { return first.concat(second); }
|
|
1837
|
+
}); };
|
|
1838
|
+
/**
|
|
1839
|
+
* Returns a `Monoid` for `Array<A>` based on the concatenation of `Array`s.
|
|
1840
|
+
*
|
|
1841
|
+
* @example
|
|
1842
|
+
* import { getMonoid } from 'fp-ts/Array'
|
|
1843
|
+
*
|
|
1844
|
+
* const M = getMonoid<number>()
|
|
1845
|
+
* assert.deepStrictEqual(M.concat([1, 2], [3, 4]), [1, 2, 3, 4])
|
|
1846
|
+
*
|
|
1847
|
+
* @category instances
|
|
1848
|
+
* @since 2.0.0
|
|
1849
|
+
*/
|
|
1850
|
+
export var getMonoid = function () { return ({
|
|
1851
|
+
concat: getSemigroup().concat,
|
|
1852
|
+
empty: []
|
|
1853
|
+
}); };
|
|
1854
|
+
/**
|
|
1855
|
+
* Derives an `Eq` over the `Array` of a given element type from the `Eq` of that type. The derived `Eq` defines two
|
|
1856
|
+
* arrays as equal if all elements of both arrays are compared equal pairwise with the given `E`. In case of arrays of
|
|
1857
|
+
* different lengths, the result is non equality.
|
|
1858
|
+
*
|
|
1859
|
+
* @example
|
|
1860
|
+
* import * as S from 'fp-ts/string'
|
|
1861
|
+
* import { getEq } from 'fp-ts/Array'
|
|
1862
|
+
*
|
|
1863
|
+
* const E = getEq(S.Eq)
|
|
1864
|
+
* assert.strictEqual(E.equals(['a', 'b'], ['a', 'b']), true)
|
|
1865
|
+
* assert.strictEqual(E.equals(['a'], []), false)
|
|
1866
|
+
*
|
|
1867
|
+
* @category instances
|
|
1868
|
+
* @since 2.0.0
|
|
1869
|
+
*/
|
|
1870
|
+
export var getEq = RA.getEq;
|
|
1871
|
+
/**
|
|
1872
|
+
* Derives an `Ord` over the `Array` of a given element type from the `Ord` of that type. The ordering between two such
|
|
1873
|
+
* arrays is equal to: the first non equal comparison of each arrays elements taken pairwise in increasing order, in
|
|
1874
|
+
* case of equality over all the pairwise elements; the longest array is considered the greatest, if both arrays have
|
|
1875
|
+
* the same length, the result is equality.
|
|
1876
|
+
*
|
|
1877
|
+
* @example
|
|
1878
|
+
* import { getOrd } from 'fp-ts/Array'
|
|
1879
|
+
* import * as S from 'fp-ts/string'
|
|
1880
|
+
*
|
|
1881
|
+
* const O = getOrd(S.Ord)
|
|
1882
|
+
* assert.strictEqual(O.compare(['b'], ['a']), 1)
|
|
1883
|
+
* assert.strictEqual(O.compare(['a'], ['a']), 0)
|
|
1884
|
+
* assert.strictEqual(O.compare(['a'], ['b']), -1)
|
|
1885
|
+
*
|
|
1886
|
+
* @category instances
|
|
1887
|
+
* @since 2.0.0
|
|
1888
|
+
*/
|
|
1889
|
+
export var getOrd = RA.getOrd;
|
|
1890
|
+
/**
|
|
1891
|
+
* Get a `Semigroup` based on the union of the elements of `Array`s.
|
|
1892
|
+
* Elements which equal according to the provided `Eq` are included
|
|
1893
|
+
* only once in the result.
|
|
1894
|
+
* See also [`getUnionMonoid`](#getUnionMonoid).
|
|
1895
|
+
*
|
|
1896
|
+
* @example
|
|
1897
|
+
* import { getUnionSemigroup } from 'fp-ts/Array';
|
|
1898
|
+
* import { Eq } from 'fp-ts/number';
|
|
1899
|
+
*
|
|
1900
|
+
* const S = getUnionSemigroup<number>(Eq);
|
|
1901
|
+
* assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1, 2, 3]);
|
|
1902
|
+
*
|
|
1903
|
+
* @category instances
|
|
1904
|
+
* @since 2.11.0
|
|
1905
|
+
*/
|
|
1906
|
+
export var getUnionSemigroup = function (E) {
|
|
1907
|
+
var unionE = union(E);
|
|
1908
|
+
return {
|
|
1909
|
+
concat: function (first, second) { return unionE(second)(first); }
|
|
1910
|
+
};
|
|
1911
|
+
};
|
|
1912
|
+
/**
|
|
1913
|
+
* Get a `Monoid` based on the union of the elements of `Array`s.
|
|
1914
|
+
* Elements which equal according to the provided `Eq` are included
|
|
1915
|
+
* only once in the result.
|
|
1916
|
+
*
|
|
1917
|
+
* @example
|
|
1918
|
+
* import { getUnionMonoid } from 'fp-ts/Array'
|
|
1919
|
+
* import { Eq } from 'fp-ts/number';
|
|
1920
|
+
*
|
|
1921
|
+
* const M = getUnionMonoid<number>(Eq);
|
|
1922
|
+
* assert.deepStrictEqual(M.concat([1, 2], [2, 3]), [1, 2, 3]);
|
|
1923
|
+
* assert.deepStrictEqual(M.empty,[]);
|
|
1924
|
+
*
|
|
1925
|
+
* @category instances
|
|
1926
|
+
* @since 2.11.0
|
|
1927
|
+
*/
|
|
1928
|
+
export var getUnionMonoid = function (E) { return ({
|
|
1929
|
+
concat: getUnionSemigroup(E).concat,
|
|
1930
|
+
empty: []
|
|
1931
|
+
}); };
|
|
1932
|
+
/**
|
|
1933
|
+
* Get a `Semigroup` based on the intersection of the elements of `Array`s.
|
|
1934
|
+
* Only elements present in the two arrays which are equal according to the
|
|
1935
|
+
* provided `Eq` are included in the result.
|
|
1936
|
+
*
|
|
1937
|
+
* @example
|
|
1938
|
+
* import { getIntersectionSemigroup } from 'fp-ts/Array'
|
|
1939
|
+
* import { Eq } from 'fp-ts/number';
|
|
1940
|
+
*
|
|
1941
|
+
* const S = getIntersectionSemigroup<number>(Eq);
|
|
1942
|
+
* assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [2]);
|
|
1943
|
+
*
|
|
1944
|
+
* @category instances
|
|
1945
|
+
* @since 2.11.0
|
|
1946
|
+
*/
|
|
1947
|
+
export var getIntersectionSemigroup = function (E) {
|
|
1948
|
+
var intersectionE = intersection(E);
|
|
1949
|
+
return {
|
|
1950
|
+
concat: function (first, second) { return intersectionE(second)(first); }
|
|
1951
|
+
};
|
|
1952
|
+
};
|
|
1953
|
+
/**
|
|
1954
|
+
* Get a `Magma` for `Array` where the `concat` function is the differnce between
|
|
1955
|
+
* the first and the second array, i.e. the result contains all the elements of the
|
|
1956
|
+
* first array for which their is no equal element in the second array according
|
|
1957
|
+
* to the `Eq` provided.
|
|
1958
|
+
*
|
|
1959
|
+
*
|
|
1960
|
+
* @example
|
|
1961
|
+
* import { getDifferenceMagma } from 'fp-ts/Array'
|
|
1962
|
+
* import { Eq } from 'fp-ts/number';
|
|
1963
|
+
*
|
|
1964
|
+
* const S = getDifferenceMagma<number>(Eq);
|
|
1965
|
+
* assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1]);
|
|
1966
|
+
*
|
|
1967
|
+
* @category instances
|
|
1968
|
+
* @since 2.11.0
|
|
1969
|
+
*/
|
|
1970
|
+
export var getDifferenceMagma = function (E) {
|
|
1971
|
+
var differenceE = difference(E);
|
|
1972
|
+
return {
|
|
1973
|
+
concat: function (first, second) { return differenceE(second)(first); }
|
|
1974
|
+
};
|
|
1975
|
+
};
|
|
1976
|
+
/**
|
|
1977
|
+
* @category instances
|
|
1978
|
+
* @since 2.7.0
|
|
1979
|
+
*/
|
|
1980
|
+
export var Functor = {
|
|
1981
|
+
URI: URI,
|
|
1982
|
+
map: _map
|
|
1983
|
+
};
|
|
1984
|
+
/**
|
|
1985
|
+
* Given an input an `Array` of functions, `flap` returns an `Array` containing
|
|
1986
|
+
* the results of applying each function to the given input.
|
|
1987
|
+
*
|
|
1988
|
+
* @example
|
|
1989
|
+
* import { flap } from 'fp-ts/Array'
|
|
1990
|
+
*
|
|
1991
|
+
* const funs = [
|
|
1992
|
+
* (n: number) => `Double: ${n * 2}`,
|
|
1993
|
+
* (n: number) => `Triple: ${n * 3}`,
|
|
1994
|
+
* (n: number) => `Square: ${n * n}`,
|
|
1995
|
+
* ];
|
|
1996
|
+
* assert.deepStrictEqual(flap(4)(funs), ['Double: 8', 'Triple: 12', 'Square: 16']);
|
|
1997
|
+
*
|
|
1998
|
+
* @category mapping
|
|
1999
|
+
* @since 2.10.0
|
|
2000
|
+
*/
|
|
2001
|
+
export var flap = /*#__PURE__*/ flap_(Functor);
|
|
2002
|
+
/**
|
|
2003
|
+
* @category instances
|
|
2004
|
+
* @since 2.10.0
|
|
2005
|
+
*/
|
|
2006
|
+
export var Pointed = {
|
|
2007
|
+
URI: URI,
|
|
2008
|
+
of: of
|
|
2009
|
+
};
|
|
2010
|
+
/**
|
|
2011
|
+
* @category instances
|
|
2012
|
+
* @since 2.7.0
|
|
2013
|
+
*/
|
|
2014
|
+
export var FunctorWithIndex = {
|
|
2015
|
+
URI: URI,
|
|
2016
|
+
map: _map,
|
|
2017
|
+
mapWithIndex: _mapWithIndex
|
|
2018
|
+
};
|
|
2019
|
+
/**
|
|
2020
|
+
* @category instances
|
|
2021
|
+
* @since 2.10.0
|
|
2022
|
+
*/
|
|
2023
|
+
export var Apply = {
|
|
2024
|
+
URI: URI,
|
|
2025
|
+
map: _map,
|
|
2026
|
+
ap: _ap
|
|
2027
|
+
};
|
|
2028
|
+
/**
|
|
2029
|
+
* Combine two effectful actions, keeping only the result of the first.
|
|
2030
|
+
*
|
|
2031
|
+
* @since 2.5.0
|
|
2032
|
+
*/
|
|
2033
|
+
export var apFirst = /*#__PURE__*/ apFirst_(Apply);
|
|
2034
|
+
/**
|
|
2035
|
+
* Combine two effectful actions, keeping only the result of the second.
|
|
2036
|
+
*
|
|
2037
|
+
* @since 2.5.0
|
|
2038
|
+
*/
|
|
2039
|
+
export var apSecond = /*#__PURE__*/ apSecond_(Apply);
|
|
2040
|
+
/**
|
|
2041
|
+
* @category instances
|
|
2042
|
+
* @since 2.7.0
|
|
2043
|
+
*/
|
|
2044
|
+
export var Applicative = {
|
|
2045
|
+
URI: URI,
|
|
2046
|
+
map: _map,
|
|
2047
|
+
ap: _ap,
|
|
2048
|
+
of: of
|
|
2049
|
+
};
|
|
2050
|
+
/**
|
|
2051
|
+
* @category instances
|
|
2052
|
+
* @since 2.10.0
|
|
2053
|
+
*/
|
|
2054
|
+
export var Chain = {
|
|
2055
|
+
URI: URI,
|
|
2056
|
+
map: _map,
|
|
2057
|
+
ap: _ap,
|
|
2058
|
+
chain: flatMap
|
|
2059
|
+
};
|
|
2060
|
+
/**
|
|
2061
|
+
* Composes computations in sequence, using the return value of one computation to determine the next computation and
|
|
2062
|
+
* keeping only the result of the first.
|
|
2063
|
+
*
|
|
2064
|
+
* @example
|
|
2065
|
+
* import * as A from 'fp-ts/Array'
|
|
2066
|
+
* import { pipe } from 'fp-ts/function'
|
|
2067
|
+
*
|
|
2068
|
+
* assert.deepStrictEqual(
|
|
2069
|
+
* pipe(
|
|
2070
|
+
* [1, 2, 3],
|
|
2071
|
+
* A.chainFirst(() => ['a', 'b'])
|
|
2072
|
+
* ),
|
|
2073
|
+
* [1, 1, 2, 2, 3, 3]
|
|
2074
|
+
* )
|
|
2075
|
+
* assert.deepStrictEqual(
|
|
2076
|
+
* pipe(
|
|
2077
|
+
* [1, 2, 3],
|
|
2078
|
+
* A.chainFirst(() => [])
|
|
2079
|
+
* ),
|
|
2080
|
+
* []
|
|
2081
|
+
* )
|
|
2082
|
+
*
|
|
2083
|
+
* @category sequencing
|
|
2084
|
+
* @since 2.0.0
|
|
2085
|
+
*/
|
|
2086
|
+
export var chainFirst =
|
|
2087
|
+
/*#__PURE__*/ chainFirst_(Chain);
|
|
2088
|
+
/**
|
|
2089
|
+
* @category instances
|
|
2090
|
+
* @since 2.7.0
|
|
2091
|
+
*/
|
|
2092
|
+
export var Monad = {
|
|
2093
|
+
URI: URI,
|
|
2094
|
+
map: _map,
|
|
2095
|
+
ap: _ap,
|
|
2096
|
+
of: of,
|
|
2097
|
+
chain: flatMap
|
|
2098
|
+
};
|
|
2099
|
+
/**
|
|
2100
|
+
* @category instances
|
|
2101
|
+
* @since 2.7.0
|
|
2102
|
+
*/
|
|
2103
|
+
export var Unfoldable = {
|
|
2104
|
+
URI: URI,
|
|
2105
|
+
unfold: unfold
|
|
2106
|
+
};
|
|
2107
|
+
/**
|
|
2108
|
+
* @category instances
|
|
2109
|
+
* @since 2.7.0
|
|
2110
|
+
*/
|
|
2111
|
+
export var Alt = {
|
|
2112
|
+
URI: URI,
|
|
2113
|
+
map: _map,
|
|
2114
|
+
alt: _alt
|
|
2115
|
+
};
|
|
2116
|
+
/**
|
|
2117
|
+
* @category instances
|
|
2118
|
+
* @since 2.11.0
|
|
2119
|
+
*/
|
|
2120
|
+
export var Zero = {
|
|
2121
|
+
URI: URI,
|
|
2122
|
+
zero: zero
|
|
2123
|
+
};
|
|
2124
|
+
/**
|
|
2125
|
+
* @category do notation
|
|
2126
|
+
* @since 2.11.0
|
|
2127
|
+
*/
|
|
2128
|
+
export var guard = /*#__PURE__*/ guard_(Zero, Pointed);
|
|
2129
|
+
/**
|
|
2130
|
+
* @category instances
|
|
2131
|
+
* @since 2.7.0
|
|
2132
|
+
*/
|
|
2133
|
+
export var Alternative = {
|
|
2134
|
+
URI: URI,
|
|
2135
|
+
map: _map,
|
|
2136
|
+
ap: _ap,
|
|
2137
|
+
of: of,
|
|
2138
|
+
alt: _alt,
|
|
2139
|
+
zero: zero
|
|
2140
|
+
};
|
|
2141
|
+
/**
|
|
2142
|
+
* @category instances
|
|
2143
|
+
* @since 2.7.0
|
|
2144
|
+
*/
|
|
2145
|
+
export var Extend = {
|
|
2146
|
+
URI: URI,
|
|
2147
|
+
map: _map,
|
|
2148
|
+
extend: _extend
|
|
2149
|
+
};
|
|
2150
|
+
/**
|
|
2151
|
+
* @category instances
|
|
2152
|
+
* @since 2.7.0
|
|
2153
|
+
*/
|
|
2154
|
+
export var Compactable = {
|
|
2155
|
+
URI: URI,
|
|
2156
|
+
compact: compact,
|
|
2157
|
+
separate: separate
|
|
2158
|
+
};
|
|
2159
|
+
/**
|
|
2160
|
+
* @category instances
|
|
2161
|
+
* @since 2.7.0
|
|
2162
|
+
*/
|
|
2163
|
+
export var Filterable = {
|
|
2164
|
+
URI: URI,
|
|
2165
|
+
map: _map,
|
|
2166
|
+
compact: compact,
|
|
2167
|
+
separate: separate,
|
|
2168
|
+
filter: _filter,
|
|
2169
|
+
filterMap: _filterMap,
|
|
2170
|
+
partition: _partition,
|
|
2171
|
+
partitionMap: _partitionMap
|
|
2172
|
+
};
|
|
2173
|
+
/**
|
|
2174
|
+
* @category instances
|
|
2175
|
+
* @since 2.7.0
|
|
2176
|
+
*/
|
|
2177
|
+
export var FilterableWithIndex = {
|
|
2178
|
+
URI: URI,
|
|
2179
|
+
map: _map,
|
|
2180
|
+
mapWithIndex: _mapWithIndex,
|
|
2181
|
+
compact: compact,
|
|
2182
|
+
separate: separate,
|
|
2183
|
+
filter: _filter,
|
|
2184
|
+
filterMap: _filterMap,
|
|
2185
|
+
partition: _partition,
|
|
2186
|
+
partitionMap: _partitionMap,
|
|
2187
|
+
partitionMapWithIndex: _partitionMapWithIndex,
|
|
2188
|
+
partitionWithIndex: _partitionWithIndex,
|
|
2189
|
+
filterMapWithIndex: _filterMapWithIndex,
|
|
2190
|
+
filterWithIndex: _filterWithIndex
|
|
2191
|
+
};
|
|
2192
|
+
/**
|
|
2193
|
+
* @category instances
|
|
2194
|
+
* @since 2.7.0
|
|
2195
|
+
*/
|
|
2196
|
+
export var Foldable = {
|
|
2197
|
+
URI: URI,
|
|
2198
|
+
reduce: _reduce,
|
|
2199
|
+
foldMap: _foldMap,
|
|
2200
|
+
reduceRight: _reduceRight
|
|
2201
|
+
};
|
|
2202
|
+
/**
|
|
2203
|
+
* @category instances
|
|
2204
|
+
* @since 2.7.0
|
|
2205
|
+
*/
|
|
2206
|
+
export var FoldableWithIndex = {
|
|
2207
|
+
URI: URI,
|
|
2208
|
+
reduce: _reduce,
|
|
2209
|
+
foldMap: _foldMap,
|
|
2210
|
+
reduceRight: _reduceRight,
|
|
2211
|
+
reduceWithIndex: _reduceWithIndex,
|
|
2212
|
+
foldMapWithIndex: _foldMapWithIndex,
|
|
2213
|
+
reduceRightWithIndex: _reduceRightWithIndex
|
|
2214
|
+
};
|
|
2215
|
+
/**
|
|
2216
|
+
* @category instances
|
|
2217
|
+
* @since 2.7.0
|
|
2218
|
+
*/
|
|
2219
|
+
export var Traversable = {
|
|
2220
|
+
URI: URI,
|
|
2221
|
+
map: _map,
|
|
2222
|
+
reduce: _reduce,
|
|
2223
|
+
foldMap: _foldMap,
|
|
2224
|
+
reduceRight: _reduceRight,
|
|
2225
|
+
traverse: _traverse,
|
|
2226
|
+
sequence: sequence
|
|
2227
|
+
};
|
|
2228
|
+
/**
|
|
2229
|
+
* @category instances
|
|
2230
|
+
* @since 2.7.0
|
|
2231
|
+
*/
|
|
2232
|
+
export var TraversableWithIndex = {
|
|
2233
|
+
URI: URI,
|
|
2234
|
+
map: _map,
|
|
2235
|
+
mapWithIndex: _mapWithIndex,
|
|
2236
|
+
reduce: _reduce,
|
|
2237
|
+
foldMap: _foldMap,
|
|
2238
|
+
reduceRight: _reduceRight,
|
|
2239
|
+
reduceWithIndex: _reduceWithIndex,
|
|
2240
|
+
foldMapWithIndex: _foldMapWithIndex,
|
|
2241
|
+
reduceRightWithIndex: _reduceRightWithIndex,
|
|
2242
|
+
traverse: _traverse,
|
|
2243
|
+
sequence: sequence,
|
|
2244
|
+
traverseWithIndex: _traverseWithIndex
|
|
2245
|
+
};
|
|
2246
|
+
var _wither = /*#__PURE__*/ witherDefault(Traversable, Compactable);
|
|
2247
|
+
var _wilt = /*#__PURE__*/ wiltDefault(Traversable, Compactable);
|
|
2248
|
+
/**
|
|
2249
|
+
* @category instances
|
|
2250
|
+
* @since 2.7.0
|
|
2251
|
+
*/
|
|
2252
|
+
export var Witherable = {
|
|
2253
|
+
URI: URI,
|
|
2254
|
+
map: _map,
|
|
2255
|
+
compact: compact,
|
|
2256
|
+
separate: separate,
|
|
2257
|
+
filter: _filter,
|
|
2258
|
+
filterMap: _filterMap,
|
|
2259
|
+
partition: _partition,
|
|
2260
|
+
partitionMap: _partitionMap,
|
|
2261
|
+
reduce: _reduce,
|
|
2262
|
+
foldMap: _foldMap,
|
|
2263
|
+
reduceRight: _reduceRight,
|
|
2264
|
+
traverse: _traverse,
|
|
2265
|
+
sequence: sequence,
|
|
2266
|
+
wither: _wither,
|
|
2267
|
+
wilt: _wilt
|
|
2268
|
+
};
|
|
2269
|
+
/**
|
|
2270
|
+
* @category sequencing
|
|
2271
|
+
* @since 2.11.0
|
|
2272
|
+
*/
|
|
2273
|
+
export var chainRecDepthFirst = RA.chainRecDepthFirst;
|
|
2274
|
+
/**
|
|
2275
|
+
* @category instances
|
|
2276
|
+
* @since 2.11.0
|
|
2277
|
+
*/
|
|
2278
|
+
export var ChainRecDepthFirst = {
|
|
2279
|
+
URI: URI,
|
|
2280
|
+
map: _map,
|
|
2281
|
+
ap: _ap,
|
|
2282
|
+
chain: flatMap,
|
|
2283
|
+
chainRec: _chainRecDepthFirst
|
|
2284
|
+
};
|
|
2285
|
+
/**
|
|
2286
|
+
* @category sequencing
|
|
2287
|
+
* @since 2.11.0
|
|
2288
|
+
*/
|
|
2289
|
+
export var chainRecBreadthFirst = RA.chainRecBreadthFirst;
|
|
2290
|
+
/**
|
|
2291
|
+
* @category instances
|
|
2292
|
+
* @since 2.11.0
|
|
2293
|
+
*/
|
|
2294
|
+
export var ChainRecBreadthFirst = {
|
|
2295
|
+
URI: URI,
|
|
2296
|
+
map: _map,
|
|
2297
|
+
ap: _ap,
|
|
2298
|
+
chain: flatMap,
|
|
2299
|
+
chainRec: _chainRecBreadthFirst
|
|
2300
|
+
};
|
|
2301
|
+
/**
|
|
2302
|
+
* Filter values inside a context.
|
|
2303
|
+
*
|
|
2304
|
+
* @since 2.11.0
|
|
2305
|
+
*/
|
|
2306
|
+
export var filterE = /*#__PURE__*/ filterE_(Witherable);
|
|
2307
|
+
/**
|
|
2308
|
+
* @category instances
|
|
2309
|
+
* @since 2.11.0
|
|
2310
|
+
*/
|
|
2311
|
+
export var FromEither = {
|
|
2312
|
+
URI: URI,
|
|
2313
|
+
fromEither: fromEither
|
|
2314
|
+
};
|
|
2315
|
+
/**
|
|
2316
|
+
* @category lifting
|
|
2317
|
+
* @since 2.11.0
|
|
2318
|
+
*/
|
|
2319
|
+
export var fromEitherK = /*#__PURE__*/ fromEitherK_(FromEither);
|
|
2320
|
+
// -------------------------------------------------------------------------------------
|
|
2321
|
+
// unsafe
|
|
2322
|
+
// -------------------------------------------------------------------------------------
|
|
2323
|
+
/**
|
|
2324
|
+
* @category unsafe
|
|
2325
|
+
* @since 2.0.0
|
|
2326
|
+
*/
|
|
2327
|
+
export var unsafeInsertAt = NEA.unsafeInsertAt;
|
|
2328
|
+
/**
|
|
2329
|
+
* @category unsafe
|
|
2330
|
+
* @since 2.0.0
|
|
2331
|
+
*/
|
|
2332
|
+
export var unsafeUpdateAt = function (i, a, as) {
|
|
2333
|
+
return isNonEmpty(as) ? NEA.unsafeUpdateAt(i, a, as) : [];
|
|
2334
|
+
};
|
|
2335
|
+
/**
|
|
2336
|
+
* @category unsafe
|
|
2337
|
+
* @since 2.0.0
|
|
2338
|
+
*/
|
|
2339
|
+
export var unsafeDeleteAt = function (i, as) {
|
|
2340
|
+
var xs = as.slice();
|
|
2341
|
+
xs.splice(i, 1);
|
|
2342
|
+
return xs;
|
|
2343
|
+
};
|
|
2344
|
+
// -------------------------------------------------------------------------------------
|
|
2345
|
+
// utils
|
|
2346
|
+
// -------------------------------------------------------------------------------------
|
|
2347
|
+
/**
|
|
2348
|
+
* `every` tells if the provided predicate holds true for every element in the `Array`.
|
|
2349
|
+
*
|
|
2350
|
+
* @example
|
|
2351
|
+
* import { every } from 'fp-ts/Array'
|
|
2352
|
+
*
|
|
2353
|
+
* assert.equal(every((x: number) => x >= 0)([1, 2, 3]), true);
|
|
2354
|
+
* assert.equal(every((x: number) => x >= 0)([-1, 2, 3]), false);
|
|
2355
|
+
*
|
|
2356
|
+
* @since 2.9.0
|
|
2357
|
+
*/
|
|
2358
|
+
export var every = RA.every;
|
|
2359
|
+
/**
|
|
2360
|
+
* `some` tells if the provided predicate holds true at least for one element in the `Array`.
|
|
2361
|
+
*
|
|
2362
|
+
* @example
|
|
2363
|
+
* import { some } from 'fp-ts/Array'
|
|
2364
|
+
*
|
|
2365
|
+
* assert.equal(some((x: number) => x >= 0)([1, 2, 3]), true);
|
|
2366
|
+
* assert.equal(some((x: number) => x >= 10)([1, 2, 3]), false);
|
|
2367
|
+
*
|
|
2368
|
+
* @since 2.9.0
|
|
2369
|
+
*/
|
|
2370
|
+
export var some = function (predicate) {
|
|
2371
|
+
return function (as) {
|
|
2372
|
+
return as.some(predicate);
|
|
2373
|
+
};
|
|
2374
|
+
};
|
|
2375
|
+
/**
|
|
2376
|
+
* Alias of [`some`](#some)
|
|
2377
|
+
*
|
|
2378
|
+
* @since 2.11.0
|
|
2379
|
+
*/
|
|
2380
|
+
export var exists = some;
|
|
2381
|
+
/**
|
|
2382
|
+
* Places an element in between members of an `Array`, then folds the results using the provided `Monoid`.
|
|
2383
|
+
*
|
|
2384
|
+
* @example
|
|
2385
|
+
* import * as S from 'fp-ts/string'
|
|
2386
|
+
* import { intercalate } from 'fp-ts/Array'
|
|
2387
|
+
*
|
|
2388
|
+
* assert.deepStrictEqual(intercalate(S.Monoid)('-')(['a', 'b', 'c']), 'a-b-c')
|
|
2389
|
+
*
|
|
2390
|
+
* @since 2.12.0
|
|
2391
|
+
*/
|
|
2392
|
+
export var intercalate = RA.intercalate;
|
|
2393
|
+
// -------------------------------------------------------------------------------------
|
|
2394
|
+
// do notation
|
|
2395
|
+
// -------------------------------------------------------------------------------------
|
|
2396
|
+
/**
|
|
2397
|
+
* @category do notation
|
|
2398
|
+
* @since 2.9.0
|
|
2399
|
+
*/
|
|
2400
|
+
export var Do = /*#__PURE__*/ of(_.emptyRecord);
|
|
2401
|
+
/**
|
|
2402
|
+
* @category do notation
|
|
2403
|
+
* @since 2.8.0
|
|
2404
|
+
*/
|
|
2405
|
+
export var bindTo = /*#__PURE__*/ bindTo_(Functor);
|
|
2406
|
+
var let_ = /*#__PURE__*/ let__(Functor);
|
|
2407
|
+
export {
|
|
2408
|
+
/**
|
|
2409
|
+
* @category do notation
|
|
2410
|
+
* @since 2.13.0
|
|
2411
|
+
*/
|
|
2412
|
+
let_ as let };
|
|
2413
|
+
/**
|
|
2414
|
+
* @category do notation
|
|
2415
|
+
* @since 2.8.0
|
|
2416
|
+
*/
|
|
2417
|
+
export var bind = /*#__PURE__*/ bind_(Chain);
|
|
2418
|
+
/**
|
|
2419
|
+
* @category do notation
|
|
2420
|
+
* @since 2.8.0
|
|
2421
|
+
*/
|
|
2422
|
+
export var apS = /*#__PURE__*/ apS_(Apply);
|
|
2423
|
+
// -------------------------------------------------------------------------------------
|
|
2424
|
+
// legacy
|
|
2425
|
+
// -------------------------------------------------------------------------------------
|
|
2426
|
+
/**
|
|
2427
|
+
* Alias of `flatMap`.
|
|
2428
|
+
*
|
|
2429
|
+
* @category legacy
|
|
2430
|
+
* @since 2.0.0
|
|
2431
|
+
*/
|
|
2432
|
+
export var chain = flatMap;
|
|
2433
|
+
// -------------------------------------------------------------------------------------
|
|
2434
|
+
// deprecated
|
|
2435
|
+
// -------------------------------------------------------------------------------------
|
|
2436
|
+
/**
|
|
2437
|
+
* Use `NonEmptyArray` module instead.
|
|
2438
|
+
*
|
|
2439
|
+
* @category zone of death
|
|
2440
|
+
* @since 2.0.0
|
|
2441
|
+
* @deprecated
|
|
2442
|
+
*/
|
|
2443
|
+
export var range = NEA.range;
|
|
2444
|
+
/**
|
|
2445
|
+
* Use a new `[]` instead.
|
|
2446
|
+
*
|
|
2447
|
+
* @category zone of death
|
|
2448
|
+
* @since 2.0.0
|
|
2449
|
+
* @deprecated
|
|
2450
|
+
*/
|
|
2451
|
+
export var empty = [];
|
|
2452
|
+
/**
|
|
2453
|
+
* Use `prepend` instead.
|
|
2454
|
+
*
|
|
2455
|
+
* @category zone of death
|
|
2456
|
+
* @since 2.0.0
|
|
2457
|
+
* @deprecated
|
|
2458
|
+
*/
|
|
2459
|
+
export var cons = NEA.cons;
|
|
2460
|
+
/**
|
|
2461
|
+
* Use `append` instead.
|
|
2462
|
+
*
|
|
2463
|
+
* @category zone of death
|
|
2464
|
+
* @since 2.0.0
|
|
2465
|
+
* @deprecated
|
|
2466
|
+
*/
|
|
2467
|
+
export var snoc = NEA.snoc;
|
|
2468
|
+
/**
|
|
2469
|
+
* Use `prependAll` instead
|
|
2470
|
+
*
|
|
2471
|
+
* @category zone of death
|
|
2472
|
+
* @since 2.9.0
|
|
2473
|
+
* @deprecated
|
|
2474
|
+
*/
|
|
2475
|
+
export var prependToAll = prependAll;
|
|
2476
|
+
/**
|
|
2477
|
+
* This instance is deprecated, use small, specific instances instead.
|
|
2478
|
+
* For example if a function needs a `Functor` instance, pass `A.Functor` instead of `A.array`
|
|
2479
|
+
* (where `A` is from `import A from 'fp-ts/Array'`)
|
|
2480
|
+
*
|
|
2481
|
+
* @category zone of death
|
|
2482
|
+
* @since 2.0.0
|
|
2483
|
+
* @deprecated
|
|
2484
|
+
*/
|
|
2485
|
+
export var array = {
|
|
2486
|
+
URI: URI,
|
|
2487
|
+
compact: compact,
|
|
2488
|
+
separate: separate,
|
|
2489
|
+
map: _map,
|
|
2490
|
+
ap: _ap,
|
|
2491
|
+
of: of,
|
|
2492
|
+
chain: flatMap,
|
|
2493
|
+
filter: _filter,
|
|
2494
|
+
filterMap: _filterMap,
|
|
2495
|
+
partition: _partition,
|
|
2496
|
+
partitionMap: _partitionMap,
|
|
2497
|
+
mapWithIndex: _mapWithIndex,
|
|
2498
|
+
partitionMapWithIndex: _partitionMapWithIndex,
|
|
2499
|
+
partitionWithIndex: _partitionWithIndex,
|
|
2500
|
+
filterMapWithIndex: _filterMapWithIndex,
|
|
2501
|
+
filterWithIndex: _filterWithIndex,
|
|
2502
|
+
alt: _alt,
|
|
2503
|
+
zero: zero,
|
|
2504
|
+
unfold: unfold,
|
|
2505
|
+
reduce: _reduce,
|
|
2506
|
+
foldMap: _foldMap,
|
|
2507
|
+
reduceRight: _reduceRight,
|
|
2508
|
+
traverse: _traverse,
|
|
2509
|
+
sequence: sequence,
|
|
2510
|
+
reduceWithIndex: _reduceWithIndex,
|
|
2511
|
+
foldMapWithIndex: _foldMapWithIndex,
|
|
2512
|
+
reduceRightWithIndex: _reduceRightWithIndex,
|
|
2513
|
+
traverseWithIndex: _traverseWithIndex,
|
|
2514
|
+
extend: _extend,
|
|
2515
|
+
wither: _wither,
|
|
2516
|
+
wilt: _wilt
|
|
2517
|
+
};
|